select id,name,score
from (select g.id,l.name,g.score,
dense_rank () over (partition by g.language_id order by score desc) as m
from grade as g inner join language as l on g.language_id=l.id) as t
where m<=2
order by name asc,score desc,id asc;
题目解答注意:不能用特殊函数命名某列,比如as rankselect id,name,scorefrom (select g.id,l.name,g.score,dense_rank () over (partition by g.language_id order by score desc) as mfrom grade as g inner join language as l on g.language_id=l.id) as twhere m<=2order by name