0
点赞
收藏
分享

微信扫一扫

Hive分析函数

有态度的萌狮子 2022-03-18 阅读 56

一、LAG与LEAD

LAG(col,n,default) 用于统计窗口内往上第n行值

第一个参数为列名,第二个参数为往上第n行(可选,默认为1),第三个参数为默认值(当往上第n行为NULL时候,取默认值,如不指定,则为NULL)

LEAD与LAG相反 ,LEAD(col,n,DEFAULT) 用于统计窗口内往下第n行值

第一个参数为列名,第二个参数为往下第n行(可选,默认为1),第三个参数为默认值(当往下第n行为NULL时候,取默认值,如不指定,则为NULL)

例子:获取用户这次下单与下次会话的时间,统计时间差

select session_id, user_id, session_create_time, 
LEAD(session_create_time,1) over (order by session_create_time asc) as next_row 
from dwb.dwb_pulsar_c_inappropriate_hour
where user_id = '1105835577';

 

 

获取上一次与这一次下单的间隔时间

select session_id, user_id, session_create_time, 
LEAD(session_create_time,1) over (order by session_create_time asc) as next_row,
datediff(LEAD(session_create_time, 1) over(order by session_create_time asc),session_create_time) as diff_days
from dwb.dwb_pulsar_c_inappropriate_hour
where user_id = '1105835577';
举报

相关推荐

0 条评论