我有一张桌子articles
,有字段id
, rating
(1-10 的整数),以及category_id
(一个整数表示它属于哪个类别)。
如何在一个 MySQL 查询中找到每个类别中评分最高的单篇文章?ORDER BY
and LIMIT
我想,这通常是我找到评价最高的文章的方式,但我不确定如何将其与分组结合起来以获得所需的结果,如果可以的话。 (依赖子查询可能是一个简单的答案,但是 ewwww。有更好的东西吗?)
对于以下数据:
id | category_id | rating
---+-------------+-------
1 | 1 | 10
2 | 1 | 8
3 | 2 | 7
4 | 3 | 5
5 | 3 | 2
6 | 3 | 6
我希望退回以下内容:
id | category_id | rating
---+-------------+-------
1 | 1 | 10
3 | 2 | 7
6 | 3 | 6
试试这些
SELECT id, category_id, rating
FROM articles a1
WHERE rating =
(SELECT MAX(a2.rating) FROM articles a2 WHERE a1.category_id = a2.category_id)
OR
SELECT * FROM (SELECT * FROM articles ORDER BY rating DESC) AS a1 GROUP BY a1.rating;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)