Hive中的一些时间函数,窗口函数简记
Hive日期时间函数
在impala上执行的几种结果,供参考
select to_date(concat(substr(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),1,8),'01'))
select current_timestamp() --2022-04-28 14:37:24.777441000
select unix_timestamp() -- 1651128042
select from_unixtime(unix_timestamp(),'yyyy-MM-dd') -- 2022-04-28 串
select to_date(from_unixtime(unix_timestamp(),'yyyy-MM-dd')) --2022-04-28
select date_sub(to_date(from_unixtime(unix_timestamp(),'yyyy-MM-dd')),10) --2022-04-18 00:00:00
窗口函数
select order_no, dealer_id,
row_number() over(partition by dealer_id order by order_no) ronum, -- 就是行号
rank() over(partition by dealer_id order by order_no desc) rk,-- 必须要有order by才能进行排名
count(*) over(partition by dealer_id ) cnt, -- 统计每个经销商的数据量
sum(order_count) over(partition by dealer_id) sm, -- 求每个经销商的sum
min(create_date) over(partition by dealer_id) mn, -- 最早时间
max(create_date) over(partition by dealer_id) mx, -- 最晚时间
lag(create_date,1,'空值') over(partition by dealer_id order by create_date) l1, -- 往前1行
lag(create_date,2,'空值') over(partition by dealer_id order by create_date) l2 -- 往前2行
from dms_ods.tt_pt_order