#思路:根据每种语言分组排序(用dense_rank),跟第二张表连接,取出排序<=2的数据即可。

select tb1.id, name, score
from
(select id, language_id, score,
dense_rank()over(partition by language_id order by score desc) r
from grade) as tb1
left join 
language on tb1.language_id=language.id
where r<=2
order by name, score desc, id