Hive 分析函式
阿新 • • 發佈:2020-10-10
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';應用:
獲取上一次與這一次下單的間隔天數selectorder_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_daysfrom bst_agg_car_hailing_complete_order_model_d where user_no = '1000019771';