1、原表增加一列排名,注意用dense_rank()函数
select *,dense_rank() over(partition by language_id order by score desc) as rnk from grade2、将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;