栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

hive 同比&环比&对比

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  -- 关键

和去年同期对比【待写】
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/671446.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号