Я работаю над тем, как реализовать таблицу лидеров. То, что я хотел бы сделать, - это сортировать таблицу несколькими различными фильтрами (оценка, количество представлений, среднее значение). Таблица может выглядеть так.Mysql сортировка по
+--------+-----------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-----------------------+------+-----+---------+-------+
| userID | mediumint(8) unsigned | NO | PRI | 0 | |
| score | int | YES | MUL | NULL | |
| numSub | int | YES | MUL | NULL | |
+--------+-----------------------+------+-----+---------+-------+
И набор образцов данных следующим образом:
+--------+----------+--------+
| userID | score | numSub |
+--------+----------+--------+
| 505610 | 1245 | 2 |
| 544222 | 1458 | 2 |
| 547278 | 245 | 1 |
| 659241 | 12487 | 8 |
| 681087 | 5487 | 3 |
+--------+----------+--------+
Мои запросы будут приходить с PHP.
// get the top 100 scores
$q = "select userID, score from table order by score desc limit 0, 100";
это возвращает набор идентификатора пользователя/счет отсортирован высокий балл первого у меня есть запрос для сортировки по numSub (количеству заявок)
То, что я хотел бы для сортировки таблицы по avg оценка, что оценка/numSub; Таблица может быть большой, поэтому эффективность важна для меня.
Заранее благодарен!
Не понял, что смог обработать в порядке ... теперь чувствую себя немым. – vbbartlett
Как я могу вернуть фактический avg вместо оценки? – vbbartlett
@vbbartlett Обновлен ответ с этим изменением. –