窗口函数
![]() | ![]() |
注意:一般使用窗口函数气候都要紧跟as 名称,因为窗口函数会多产生一个列
使用开窗函数应避免使用rank 作为排序字段名称。容易报错
来自 2.查找入职员工时间排名倒数第三的员工所有信息_牛客博客
也可以直接用over计算累计总和等,e.g.sum/count()over()
窗口函数只是把所有相同分组的字段摆在一起而不是group by合并
注:如果想排序又不扰乱原表顺序,在原表基础上连接排序窗口函数即可
e.g.1 排序窗口函数
窗口函数执行顺序
自己用表格副本进行排序,而不影响原来的表格
![]() | ![]() |
e.g.2 偏移分析函数
![]() | ![]() |
练习题
e.g. sum()over(order by )按order顺序叠加求和(注意是前面所有组叠加不是单个组总和)
单个组求和是partition by
本题出题的题意其实主要是考察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
来自 <最差是第几名(一)_牛客题霸_牛客网>