想要用一条sql语句取出各类数据的前两N条数据?请问该怎么做?


如表结构:
id,name,age,type,Score
数据据:
1,李,12,小学生,80
2,王,13,小学生,78
3,王,13,中学生,56
4,王,13,中学生,94
5,王,13,小学生,35
6,王,13,中学生,74
7,王,13,小学生,97
8,王,13,中学生,64
用一条sql语句得出下面的结
1,李,12,小学生,80
7,王,13,小学生,97
4,王,13,中学生,94
6,王,13,中学生,74

UYOU
浏览 262回答 3
3回答

慕少森

这个sql有点麻烦了,简单点的就直接select id,name,type,score from student where type='小学生' limit 2 union select id,name,type,score from student where type='中学生' limit 2 ;或者你用存储过程来做循环:查询出所有type然后在循环里动态给 查询语句中的type复制,有几个type就concat几个union上去,其他直接写sql查询的话有点难,写不出来

临摹微笑

select id,name,age,type,score from(select id,name,age,type,score,rank() over(partition by school order by id asc) as num from table aa)where aa.num<3这个可以我试过了

暮色呼如

select top 4 * from 表名 where 条件
打开App,查看更多内容
随时随地看视频慕课网APP