select a.id,a.name,a.score
from(
select g.id,l.name,g.score, 
dense_rank() over (partition by g.language_id order by g.score desc) as ranking
from grade g 
join language l on g.language_id =l.id)a
where a.ranking <3
order by a.name,a.score desc,a.id

注意细节