题解 | 74#考试分数(三)#

考试分数(三)

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

select 
g.id
,name
,score
from 
(
    select *
    ,dense_rank() over(partition by language_id order by score desc) t_rank 
    from grade
) g
join language l on g.language_id=l.id
where g.t_rank<=2
order by name,score desc,g.id

思路:利用窗口函数把名次求出来,然后用子查询得到的表去连接 language 表,接下来就是按条件写了。注意使用可重复的 dense_rank() 函数。如 1,1,2

sql题 文章被收录于专栏

牛客网里面的sql题,把答案和思路写下来

全部评论

相关推荐

迷茫的大四🐶:你这个拿去投央国企吧,投私企包过不了的
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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