用SQL选出每个人成绩的最高纪录

 

create table test23
(
indexH int,
name varchar(20),
subject varchar(20),
grade int
)
insert all
into test23 values(1,'小张','语文',70)
into test23 values(2,'小张','英语',90)
into test23 values(3,'小王','语文',89)
into test23 values(4,'小王','数学',80)
into test23 values(5,'小李','数学',90)
into test23 values(6,'小李','英语',70)
select * from dual
当然我用的是Oracle数据库,可能不同的数据库产品有所不同。

然后查询每个人成绩的最高纪录,并且标明是在哪科取得的。
select * from test23 t1
where GRADE =(select max(grade) from test23 t2 where t2.name=t1.name)
这个的结果是:
INDEXH NAME SUBJECT GRADE
2 小张 英语 90
3 小王 语文 89
5 小李 数学 90

posted @ 2018-04-01 23:49  SessionBest  阅读(1400)  评论(0编辑  收藏  举报