partition by关键字是分析性函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partition by用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组
example: 一个班有学生id,成绩,班级,现在将学生根据班级按照成绩排名。(partition by)
1 | select *,row_number() over(partition by Grade order by Score desc) as Sequence from Student |
---|
explode 拆分一行称多行,而posexplode是根据多行匹配行号进行拆分多行。
取分组内排序后,截止到当前行,第一个值
取分组内排序后,截止到当前行,最后一个值
用于统计窗口内往下第n行值。第一个参数为列名,第二个参数为往下第n行(可选,默认为1),第三个参数为默认值(当往下第n行为NULL时候,取默认值,如不指定,则为NULL)
与lead相反,用于统计窗口内往上第n行值。第一个参数为列名,第二个参数为往上第n行(可选,默认为1),第三个参数为默认值(当往上第n行为NULL时候,取默认值,如不指定,则为NULL)
从1开始,按照顺序,生成分组内记录的序列
生成数据项在分组中的排名,排名相等会在名次中留下空位
生成数据项在分组中的排名,排名相等会在名次中不会留下空位
小于等于当前值的行数/分组内总行数
分组内当前行的RANK值-1/分组内总行数-1
用于将分组数据按照顺序切分成n片,返回当前切片值,如果切片不均匀,默认增加第一个切片的分布
Note:
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有