最差是第几名(一)题解

最差是第几名(一)

http://www.nowcoder.com/questionTerminal/ae5e8273e73b4413823b676081bd355c

本题出题的题意其实主要是考察sum() over (order by ) 开窗函数,sum(a) over (order by b) 的含义是:
例如
a  b
1 2
3 4
5 6
按照b列排序,将a依次相加,得到结果,如下:
a  b  sum(a) over (order by b):
1 2    1
3 4    1+3
5 6    1+3+5

此题就是将b换成了grade,即使b列乱序也没关系,因为有order by b:
number  grade  sum(number) over(order by grade):
2    A    2
2    B    2+2
2    C    2+2+2
1    D    2+2+2+1

所以我们代码可以如下写:
select grade, sum(number) over(order by grade) t_rank 
from class_grade 
order by grade;


全部评论
窗口函数是全局排序,最后不需要再order by grade了
11 回复 分享
发布于 2021-06-17 17:35
得需要先排序确定哪个是第一个,那个是第二个, 再进行迭代
点赞 回复 分享
发布于 2022-02-16 14:25
请假下:为什么 over函数 里不加 paitition by 分组呢? 不是要针对grade 分组嘛 ?
点赞 回复 分享
发布于 2022-04-14 11:27
最后order by grade不需要
点赞 回复 分享
发布于 2023-09-03 08:34 河北
学到了,第一次知道窗口函数可以不加partitionby
点赞 回复 分享
发布于 2024-09-28 14:24 北京

相关推荐

点赞 评论 收藏
分享
序 朋友们,好久不见。 笔者在过去消失的五个月里被困在情绪牢笼中过的相当煎熬,一度丢失自己,觉得整个世界都是昏暗的。 庆幸的是靠着自己纯硬扛也是走出来了。表达欲再度回归,所以真的很开心还有机会能在再和大家见面。 破碎秋招 抑郁情绪的引爆点必然是秋招期间遭受的打击了,从去年九月份腾讯转正被告知失败之后就开始疯狂投递简历,每天都在经历:简历挂、一面挂、二面挂、三面挂、HR面挂,每天睁开眼就被无所适从的挫败感包围。 秋招的特点是即便流程走到最后一步也不一定会 offer,因为还需要进入大池子进行横向对比,俗称泡池子,而这一泡我的大多数面试流程到后面就没了后文,这一度让我感觉非常绝望。我深知自己学历并...
SoNiC_X:我已经工作快2年了,当时高考没考好没去到想去的学校,觉得天要塌了;校招找不到工作,觉得天要塌了;现在工作觉得看不到未来,觉得天要塌了;最近最大的感悟就是:天会一直塌,但是生活也会一直继续下去,还是要调整好自己的心态,不要因为一时的困难把自己困住,要记住完蛋的日子永远在后头
点赞 评论 收藏
分享
评论
99
5
分享

创作者周榜

更多
牛客网
牛客企业服务