Порядок запросов MySQL по большинству случаев
У меня есть таблица MySQL, настройка так:
id | game_type | votes
01 | aaa | 2
02 | bbb | 2
03 | ccc | 4
04 | aaa | 7
05 | aaa | 1
06 | ccc | 11
Я хотел бы вернуть все строки, так что они упорядочены по game_type, но с большинством случаев игры типа в порядке убывания, а затем упорядочены по количеству проголосовавших в порядке убывания, например:
04 aaa 7
01 aaa 2
05 aaa 1
06 ccc 11
03 ccc 4
02 bbb 2
Если у меня просто ORDER BY в конце запроса, он просто группирует их в случайном порядке.
Есть идеи, как мне этого добиться?
1 ответ
Решение
Попробуй это:
SELECT M.id, M.game_type, M.votes
FROM MyTable AS M INNER JOIN
(SELECT game_type, COUNT(game_Type) AS TypeCount
FROM MyTable
GROUP BY game_type
ORDER BY COUNT(game_Type) DESC) AS U
ON M.game_type=U.game_type
ORDER BY U.TypeCount DESC, M.game_type, M.votes DESC