Hive 窄表转宽表 , 长表转宽表


1.这是源数据以及需要转化的目标表.

 

 

我们的方法是 , 用 GROUP BY按照year分组 , 并且依次提取1月,2月,3月,4月的 num,具体实现

select year,
max(case when month=1 then money else 0 end) as M1,
max(case when month=2 then money else 0 end) as M2,
max(case when month=3 then money else 0 end) as M3,
max(case when month=4 then money else 0 end) as M4  
from sale group by year;

其中select year是选择年 , 配合后面GROUP BY 

中间的max是获取其中等于匹配到的值, 为什么要写个0 , 其实是为了去重 , 也是为了部位null

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM