输出每门课程的课程号、课程名、最高分以及其获得者的学号
select 课程号,课程名、学号、分数 from 成绩表 group by 课程号 order by 分数 desc
1.此题可以用开窗函数解决,按照课程号分组,成绩降序排列,取row_number第一的就是各门成绩最高的数据;
2. sql如下:
select t2.课程号, t2.课程名,t2.学号, t2.成绩
from
(
select t1.课程号,t1.课程名,t.学号, t.成绩,
row_number() over(partition by t1.课程号 order by t.成绩 desc) rn
from 成绩 t
join 课程 t1
on t.课程号= t1.课程号
) t2
where t2. rn=1;