mysql实现分组取每组前几名
在开发过程中,会遇到分组后取每一组排名前几的几个人,具体实现的sql如下:需求:按category分组,查出achievement最高的每组的前三名
·
在开发过程中,会遇到分组后取每一组排名前几的信息,具体实现的sql如下:
SELECT
a.id,
a.NAME '姓名',
a.achievement '成绩',
a.category '类别'
FROM
`user` a;
需求:按category分组,查出achievement最高的每组的前三名
SELECT
a.id,
a.NAME '姓名',
a.achievement '成绩',
a.category '类别'
FROM
`user` a
WHERE
3 > (
SELECT COUNT(*) FROM `user` b
WHERE b.category = a.category
AND b.achievement > a.achievement
)
ORDER BY
a.category,
a.achievement DESC
sql解析:
3>:目的是获取前三条数据。
where b.category=a.category :目的是确定分组字段
b.achievement > a.achievement 排序字段
更多推荐
所有评论(0)