0 前言
我们在写Sql语句的时候没经常会遇到将查询结果列转行,例如做vintage报表的时候,SqlServer中有了PIVOT/UNPIVOT函数可以快速实现行转列和列转行的操作,然而hive中没有,大多数人都是通过写一系列的case when函数来实现,个人觉得使用case when这种方法虽然很好,但是很繁琐,这里抛砖引玉一下,通过使用窗口函数来实现列转换操作。
1 需求描述
废话不说,直接上表,说明咱们需要处理的问题:
表 1 | ||
---|---|---|
月份 | 期数 | 金额 |
2019/01 |
我们在写Sql语句的时候没经常会遇到将查询结果列转行,例如做vintage报表的时候,SqlServer中有了PIVOT/UNPIVOT函数可以快速实现行转列和列转行的操作,然而hive中没有,大多数人都是通过写一系列的case when函数来实现,个人觉得使用case when这种方法虽然很好,但是很繁琐,这里抛砖引玉一下,通过使用窗口函数来实现列转换操作。
废话不说,直接上表,说明咱们需要处理的问题:
表 1 | ||
---|---|---|
月份 | 期数 | 金额 |
2019/01 |