rows between unbounded preceding and current row
【摘要】 rows between lead delta
【背景】
近日支撑项目上遇到“row between unbonded preceding and current row”用法,有些琢磨不透,经过自己分析后发现与lead函数功能类似,但略有不同,先将测试过程分享如下。
【说明】
如CSDN(https://blog.csdn.net/gongpulin/article/details/105091851)所说,具体含义如下:
preceding: 往前
following: 往后
current row: 当前行
unbounded: 起点(一般结合preceding,following使用)
unbounded preceding: 表示该窗口最前面的行(起点)
举例:
rows between unbounded preceding and current row: 表示从起点到当前行
rows between 2 preceding and 1 following: 表示往前2行到往后1行
rows between 2 preceding and 1 current row: 表示往前2行到当前行
rows between current row and unbounded following: 表示当前行到终点
【测试过程】
1.测试数据说明
由于本人之前从事过计量行业,因此模拟物联网采集设备采集读数作为本次测试数据,用前一天数据与后一天数据计算得到本期用量,具体数据如下:
2.建表
3.插入数据
4.使用rows between unbounded preceding and current row查询
5.lead函数查询
5.delta函数查询
IoT数仓中delta函数与lead有类似功能,具体大家若有环境可自行研究。
【总结】
1.“rows between unbounded preceding and current row” 功能可实现与lead类似功能,但使用较为复杂,没lead好理解;
2.“rows between unbounded preceding and current row”与lead不同之处在于lead最后一条数据为NULL;
3.“rows between unbounded preceding and current row”、lead、以及IoT数仓中delta函数均可实现相同功能,但前两个需要计算才可得到用量,而delta可直接得到用量,使用更简单。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)