1、原表增加一列排名,注意用dense_rank()函数
select *,dense_rank() over(partition by language_id order by score desc) as rnk
from grade
2、将1表和language 表连接,筛选排名前两位的信息
select a.id,b.name,a.score
from
(select *,dense_rank() over(partition by language_id order by score desc) as rnk
from grade) as a
join `language` as b
on a.language_id=b.id
where a.rnk<=2
order by b.name,a.score desc,a.id;