create table 成绩表(学号 int identity(1,1),姓名 varchar(10),科目 varchar(10),成绩 int)
insert 成绩表 select '张三','语文',80
insert 成绩表 select '李四','语文',83
insert 成绩表 select '王五','英语',99
insert 成绩表 select '李四','数学',88
insert 成绩表 select '张三','英语',66
insert 成绩表 select '王五','数学',87
insert 成绩表 select '李四','英语',69
insert 成绩表 select '张三','数学',63
insert 成绩表 select '王五','语文',77
select * from 成绩表 a where not exists(select 1 from 成绩表 where 科目=a.科目 and 成绩>a.成绩)
请用一条sql语句实现求最高成绩,如下:
学号 姓名 科目 成绩
2 李四 语文 83
3 王五 英语 99
4 李四 数学 88
select * from 成绩表 where
select a.* from 成绩表 a,(select 科目,成绩=max(成绩) from 成绩表 group by 科目) b where a.科目=b.科目 and a.成绩=b.成绩
select a.* from 成绩表 a where exists(select 1 from (
select max([成绩]) as 成绩,[科目] from 成绩表 group by [成绩],[科目]
)b where a.[科目]=b.[科目] and a.[成绩]=b.[成绩])
本文介绍了一个使用SQL查询每个科目最高成绩的方法。通过构建子查询来筛选各科目的最高分数记录,并展示具体的实现语句。
2220

被折叠的 条评论
为什么被折叠?



