mysql 用一条sql语句取出各类数据的前两N条数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 用一条sql语句取出各类数据的前两N条数据相关的知识,希望对你有一定的参考价值。
mysql 用一条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
简单点的就直接
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查询的话有点难,写不出来 参考技术B 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
这个可以我试过了追问
你的表结构是什么样的?
参考技术C select top 4 * from 表名 where 条件追问主要是要查询出小学生和中学生两个分类的前两条数据,而且是mysql,不是sql server。
参考技术D 这是按什么排序的追问什么排序都可以,只要能取出各分类里的前N条数据就可以。
追答直接写两条SQL
select * from student where type='小学生' limit 2
select * from student where type='中学生' limit 2
以上是关于mysql 用一条sql语句取出各类数据的前两N条数据的主要内容,如果未能解决你的问题,请参考以下文章