首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

查询每类最大的两个值的SQL要如何写啊

2012-06-05 
查询每类最大的两个值的SQL要怎么写啊~~比如这样的场景:表 exam 记录学生每次测验的成绩,stu_id 是学生id,

查询每类最大的两个值的SQL要怎么写啊~~
比如这样的场景:表 exam 记录学生每次测验的成绩,stu_id 是学生id,score 是成绩。查询出全部学生的最好的两次测验成绩的sql要怎么写?
比如表 exam 的数据如下,

198
196
2100
185
289
290
382
366
375

查询到结果应该是
198
196
2100
290
382
375

[解决办法]



SELECT * from tty a where 2>(select count(*) from tty where a.id=id and a.score<score)

[解决办法]
参考下贴中的多种方法

http://blog.csdn.net/acmain_chm/article/details/4126306
[征集]分组取最大N条记录方法征集,及散分....
[解决办法]
select *
from Table1 a
where id in (select id from Table1 where ClsNo=a.ClsNo order by Score desc limit 2)
order by a.ClsNo,a.Score desc


[解决办法]
不来这么复杂啦 会晕的
select id, max(score) from exam
group by id
having count(id)=2
limit 2; 这个不错

热点排行