题解 | #考试分数(三)#
考试分数(三)
https://www.nowcoder.com/practice/b83f8b0e7e934d95a56c24f047260d91
with t1 as ( select a.id, b.name, a.score from grade as a left join language as b on a.language_id = b.id ), # 按照name进行分组,然后按照score降序进行排序 t2 as ( select id, name, score, Dense_rank() over (PARTITION BY name ORDER BY score DESC) as score_rank from t1 ) select id, name, score from t2 where score_rank <= 2 order by name, score desc, id;