Hive 分析函数
1)LAG与LEAD
LAG(col,n,default) 用于统计窗口内往上第n行值
第一个参数为列名,第二个参数为往上第n行(可选,默认为1),第三个参数为默认值(当往上第n行为NULL时候,取默认值,如不指定,则为NULL)
例子:获取用户这次下单与下次下单的时间,统计时间差
select order_no,create_time,LEAD(create_time,1) over (order by create_time asc) as next_row from bst_agg_car_hailing_complete_order_model_d where user_no='1000019771';
LEAD与LAG相反 ,LEAD(col,n,DEFAULT) 用于统计窗口内往下第n行值
第一个参数为列名,第二个参数为往下第n行(可选,默认为1),第三个参数为默认值(当往下第n行为NULL时候,取默认值,如不指定,则为NULL)
例子:
select order_no,create_time,LAG(create_time,1) over (order by create_time asc) as last_row from bst_agg_car_hailing_complete_order_model_d where user_no='1000019771';
应用:
获取上一次与这一次下单的间隔天数
select order_no, sell_channel_no, provider_no, supplier_no, from_city_no, create_time as order_date, LEAD(create_time, 1) over(order by create_time asc) as next_order_date, datediff(LEAD(create_time, 1) over(order by create_time asc),create_time) as diff_days from bst_agg_car_hailing_complete_order_model_d where user_no = '1000019771';

浙公网安备 33010602011771号