hive同环比实现
Posted wanshiming
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive同环比实现相关的知识,希望对你有一定的参考价值。
select a.date , a.measure , case when b.measure is null or b.measure=0 then null else concat(
cast(
cast((if(a.measure is null, 0, a.measure)-if(b.measure is null,0,b.measure))*100/b.measure as decimal(10,2))
as string)
,‘%‘) end as ratio_column from test_table a left join test_table b on ( to_date(from_unixtime(unix_timestamp(concat(a.date,‘‘),‘yyyyMM‘),‘yyyy-MM-dd HH:mm:ss‘))
= add_months(to_date(from_unixtime(unix_timestamp(concat(b.date,‘‘),‘yyyyMM‘),‘yyyy-MM-dd HH:mm:ss‘)),+1) and 1 = 1 )
提醒:
1.第一个join条件的‘yyyyMM‘可以根据字段date的具体格式改变,‘yyyy-MM-dd HH:mm:ss‘不需要改变
2.该同环比没有任何分组和汇总,所以一旦date字段有重复值,很容易出现笛卡尔积,解决方案是确保join条件能够确定一条数据在表中的唯一性
以上是关于hive同环比实现的主要内容,如果未能解决你的问题,请参考以下文章