请教:如何用一条SQL语句查询出每个班前10名学生数据?

newqm 2015-09-06 04:25:06
有一个学生信息表,包含:姓名、班级ID、班内名次;保存多个班级学生的相关数据;
请教:如何用一条SQL语句查询出每个班前10名学生数据?
...全文
3995 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
北落师门_Orz 2015-09-09
  • 打赏
  • 举报
回复
你按照成绩Order by 再 limit 0, 10
newqm 2015-09-08
  • 打赏
  • 举报
回复
引用 1 楼 benluobobo 的回复:
select * from 学生信息表 a where 10 > (select count(*) from 学生信息表 where 班级ID = a.班级ID and 班内名次 > a.班内名次)
多谢,再问一下,如果有并列名次,但只想取前10个(而不是1~10名的所有人,如果名次并列了,就按学号取最小的),要怎么办呢?
ACMAIN_CHM 2015-09-06
  • 打赏
  • 举报
回复
参考下贴中的多种方法 http://blog.csdn.net/acmain_chm/article/details/4126306 [征集]分组取最大N条记录方法征集,及散分....
benluobo 2015-09-06
  • 打赏
  • 举报
回复
select * from 学生信息表 a where 10 > (select count(*) from 学生信息表 where 班级ID = a.班级ID and 班内名次 > a.班内名次)

56,893

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧