您的位置:首页 > 数据库

SQL分组求每组最大值问题的解决方法收集 (转载)

2017-02-20 11:12 429 查看
例如有一个表student,其结构如下:

id name sort score

1 张三 语文 82

2 李四 数学 95

3 王五 语文 88

4 小东 英语 86

5 张三 数学 92

6 小红 体育 80

要求查询的结果如下:

id name sort score

3 王五 语文 88

2 李四 数学 95

4 小东 英语 86

6 小红 体育 80

顺序可调换,即为每个科目的最高分信息

SQL如下:

法一:

select student.id,student.name,student.sort,student.score from student inner join (select sort, max(score) as score from student group by sort) B on student.sort=B.sort AND student.score=B.score order by id

法二:

select * from student a where not exists(select * from student where a.score<score and a.sort=sort )

法三:

select * from student a where 1〉(select count(*) from student where a.score<score and a.sort=sort )
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: