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

考试分数(三)

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

窗口函数dense()的使用

先找出排名

select *, dense_rank() over(partition by b.name order by a.score desc) as rank from grade a left join language b on a.language_id = b.id

再进一步查询即可

select c.id, c.name, c.score
from (select *, dense_rank() over(partition by b.name order by a.score desc) as rank from grade a left join language b on a.language_id = b.id) c
where c.rank <= 2
order by c.name asc, c.score desc, c.id asc;
全部评论

相关推荐

不对是145个人…嗯…&nbsp;大家都没发现秋招提前批来了嘛..笑死我了
牛客39712426...:投了也是浪费时间,之前投米实习,除了浪费我时间写笔试题没有任何反馈,懒得投了
26届校招投递进展
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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