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.[成绩])