题解 | SQL273 考试分数(三)
-- sql273 考试分数(三) WITH t1 AS ( SELECT id, language_id, score, DENSE_RANK() OVER(PARTITION BY language_id ORDER BY score DESC) AS ranking FROM grade ), t2 AS ( SELECT id, language_id, score FROM t1 WHERE ranking <= 2 ), t3 AS ( SELECT t2.id, l.name, t2.score FROM t2 LEFT JOIN language l ON t2.language_id = l.id ORDER BY l.name ASC,t2.score DESC,t2.language_id ASC ) SELECT * FROM t3; # 记得进行三重排序功能实现!