У меня есть таблица articles
, с полями id
, rating
(целое число от 1 до 10) и category_id
(целое число, представляющее, к какой категории он относится).
Как я могу в одном запросе MySQL найти отдельную статью с самым высоким рейтингом в каждой категории?Полагаю, что ORDER BY
и LIMIT
обычно бывают такими, как я нашел бы статью с самым высоким рейтингом, но я не уверен, как смешать это с группировкой, чтобы получить желаемый результат, если смогу.(Зависимый подзапрос, вероятно, будет простым ответом, но ewwww. Есть ли что-нибудь лучше?)
Для следующих данных:
id | category_id | rating
---+-------------+-------
1 | 1 | 10
2 | 1 | 8
3 | 2 | 7
4 | 3 | 5
5 | 3 | 2
6 | 3 | 6
Я хотел бы, чтобы было возвращено следующее:1014 *
id | category_id | rating
---+-------------+-------
1 | 1 | 10
3 | 2 | 7
6 | 3 | 6