目录
需求:查询每科成绩排名前两名的数据
1、原表score数据如下:
表明:score
字段:name、subject、score
2、 分组查询sql语句如下:
select *from score a
where (
(select count(1) from score b where a.subject = b.subject and a.score < b.score) < 2
)
order by a.subject, a.score desc
sql解析:
<2:目的是获取分组前两条数据。
where a.subject = b.subject :目的是确定分组字段
a.score < b.score 排序字段
3、查询结果
以上内容为个人学习理解,如有问题,欢迎在评论区指出。