sql 这个语句怎么写呢

sc(sno,cno,grade)
查询每门课程中成绩最高的前五名同学

select cno,sno,grade,rank
from (select cno,sno,grade,row_number() over(partition by cno order by grade desc)rank
from sc)
where rank <= 5
order by 1,4;

select t.sno,t.cno,t.grade from (select sno,cno,grade from sc as t order by grade) limit 0,5;
反正就这么个思路,先排序后查询前五个,语句对不对我就不知道了

select * from sc group by grade limit 5

 select top 5 * from sc 
 order by grade desc
 group by cno

select * from tableName order by accomplishment desc limit 0,5

根据成绩将包降序排列qu前五条记录