题解 | 考试分数(三)

考试分数(三)

https://www.nowcoder.com/practice/b83f8b0e7e934d95a56c24f047260d91

-- 一看到排名,这题就确定要用窗口函数了,所以首先要根据分数去语言内排名
WITH ranking_l AS(
    SELECT
        id,
        language_id,
        score,
        DENSE_RANK() OVER(partition by language_id order by score DESC) AS ranking
    FROM grade
)
-- 第二步,将上面的cte和语言表相连接获取信息(排名前两位的)
SELECT t1.id,t2.name,t1.score
FROM ranking_l t1
JOIN language t2
ON t1.language_id = t2.id
WHERE t1.ranking < 3
ORDER BY t2.name,t1.score DESC,t2.id

全部评论

相关推荐

FieldMatching:看成了猪头顾问,不好意思
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务