rows between unbounded preceding and current row

举报
毛竹 发表于 2024/08/26 10:13:40 2024/08/26
【摘要】 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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。