博客 Hive之lead函数详解

Hive之lead函数详解

   数栈君   发表于 2023-09-08 12:06  191  0

例如如下语句:

drop table if exists temp03;

create table temp03 as

select

card_no,

deal_date,

deal_type_station,

LEAD(deal_type_station,1) over(partition by card_no order by deal_date)

as next_station

from temp02;


LEAD(deal_type_station,1)是什么意思

答案:在这个查询中,LEAD(deal_type_station, 1) 是一个窗口函数,用于获取每个 card_no 分组内的当前行的下一行的 deal_type_station 值。

窗口函数用于在查询结果集内执行计算,并且可以访问和处理当前行之外的其他行。LEAD() 函数是一个窗口函数,用于获取指定列的下一行的值。

具体到这个查询中,LEAD(deal_type_station, 1) 的意思是获取每个 card_no 分组内,按照 deal_date 排序的当前行的下一行的 deal_type_station 值。

例如,如果 temp02 表的数据如下:

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/12c26aedf945b4b524ad2f3bf4c4f3f9..png

那么执行这个查询后,temp03 表的数据如下:

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/38e0a9a1ad232eef484a5952e9ee566e..png

可以看到,next_station 列显示了每个 card_no 分组内当前行的下一行的 deal_type_station 值。如果当前行已经是分组内的最后一行,那么 next_station 列的值将为 NULL。






免责申明:


本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!

《数据治理行业实践白皮书》下载地址:https://fs80.cn/4w2atu

《数栈V6.0产品白皮书》下载地址:
https://fs80.cn/cw0iw1

想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:
https://www.dtstack.com/?src=bbs

同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:
https://github.com/DTStack

0条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

最新活动更多
微信扫码获取数字化转型资料
钉钉扫码加入技术交流群