select id, name, score
from
(select g.id,name,score,dense_rank()over(partition by language_id order by score desc) r
from grade g
left join language l
on g.language_id=l.id) t1
where r=1 or r=2
order by name, r