题解 | 考试分数(三)

考试分数(三)

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

with a as(
    select g.id as id,l.name as name,g.score as score,
    dense_rank()over(partition by l.name order by g.score desc) as rk
    from grade g join language l on g.language_id=l.id
)
select id,name,score from a
where rk in (1,2)
order by name asc,score desc,id asc

注意:刚开始用的row_number排序,如99、99、98排序是1、2、3,这样就不是按实际分数排名,选出1和2

dense_rank,如99、99、98排序是1、1、2,这样就符合题意了

全部评论

相关推荐

点赞 评论 收藏
分享
03-10 11:23
门头沟学院 Java
鹿LF:计算机面试就跟数学题一样,没什么实际价值,但只能这么筛选,本质是考察你的努力,智力和学习能力
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务