相关文章推荐
有腹肌的生菜  ·  python 利用for循环 ...·  4 月前    · 
留胡子的煎饼  ·  flutter - Duplicate ...·  10 月前    · 
查询每个人最高成绩SQL:
第一种:先使用group by和max得到最高分数和学科,然后再查询一下score表,找到学科和分数都相同的记录
select b.* from (select max(score) t,course from score group by course) a,score b where a.t=b.score and a.course=b.course

第二种:先得到相同学科的最高分数,再查询score表,找到最高分数的记录select * from score a where score=(select max(score) from score where course=a.course)

第三种:score表中,当学科一样的时候,不存在一条记录的分数小于其它记录的分数select * from score a where not exists(select * from score where a.course=course and a.score<score) 1、定义。EJU(Examination for Japanese University Admission for International Students)全名是日本留学考试。它是日本针对留学生设立,测试留学者日语及基础学科学力的考试。有98% 的国公立大学、49% 的私立大学会参考EJU成绩,达到特定分数才能报考该院... 点击进入详情页 本回答由 长春市程氏科技有限公司_ 提供 首先建表并插入测试数据:
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
如果你想要别的结果,告诉我,OK?