hive 同比&环比&对比

hive 同比&环比&对比,第1张

hive 同比&环比&对比

hive常用同环比
    • 和昨天对比
    • 和上个月同期对比
    • 和去年同期对比【待写】

因同环比定义不同,则不命名同环比,只定义对比天数和日期。统一用自连接写法

和昨天对比
select
 a.*
 ,b.*
 from a 
left join a b 
on a.dt = b.dt and a.channel = b.channel and datediff(a.dt, b.dt) = 1
和上个月同期对比

当月日期和T-1月同日期同比。除3月以外,其他月份如无上月同日期(31号),就和上月最后一天(30号)进行同比。3月同比2月时间,无法对应日期的均与2月最后一天同比。

with t as (select 
 a.dt
,a.Yas 
,a.X
,case when month (a.dt) in (01,02,04,06,08,09,11) then date_sub(a.dt,31)
      when day(a.dt) = 31 and month (a.dt) in (05,07,10,12) then date_sub(trunc(a.dt,'MM'),1) -- 上个月最后一天
      when day(a.dt) != 31 and month (a.dt) in (05,07,10,12) then date_sub(a.dt,30)
      when day(a.dt) in (29,30,31)  and month (a.dt) = 03 then date_sub(trunc(a.dt,'MM'),1)
      when month (a.dt) = 03 then date_sub(a.dt,28)
  end as 30_day_30 
from a
)
select 
t.*
,t.X/t_30.X - 1 as X_30
,t.Y/t_30.Y- 1 as Y_30
,t.dt
from t -- T天
left join t t_30 -- T-30
on t.30_day_30 = t_30.dt  -- 关键

去年同期对比【待写】

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5676681.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存