题目
-
题目来源:SQL74 考试分数(三)
-
题目描述
-
两张表
-
所需结果
题解
使用排序窗口函数作为行过滤条件,最后将结果 LEFT JOIN
SELECT t.id, l.name, t.score
FROM (SELECT *,
DENSE_RANK() OVER(PARTITION BY language_id ORDER BY score DESC) rk
FROM grade
) t
LEFT JOIN language l
ON t.language_id = l.id
WHERE t.rk <= 2
ORDER BY l.name, t.score DESC, t.id