思路:dense_rank()
select
g.id
,name
,score
from
(
select
g.id
,name
,score
,row_number(partition by name order by score desc) rk
from grade g
left join language l on g.language_id = l.id
) a
where rk<=2
order by name,rk desc,id