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

考试分数(三)

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

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

先分类重复排序,将组内排名标出来。
后将排名1、2的拎出来。
后按 name、 grade 排序。

全部评论
你好,我有两个问题想请教一下: 1.我发现order by只需要t.name就正确了,不过加上t.score, t.id也不影响,不知道什么时候排序了score和id 2.我尝试将两个rank_1改名为rank报错了,不知是什么原因。
点赞 回复 分享
发布于 2023-07-06 00:02 澳大利亚

相关推荐

01-18 09:26
已编辑
门头沟学院 Java
王桑的大offer:建议中间件那块写熟悉即可,写掌握 面试包被拷打到昏厥
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客企业服务