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
注意细节