窗口函数:实现sql查询结果列转行

本文介绍了如何在Hive中利用窗口函数,特别是lead()函数,来实现SQL查询结果的列转行操作。通常,这种转换在处理vintage报表时非常有用,而Hive中没有像SQL Server中的PIVOT/UNPIVOT那样直接的功能。通过插入数据和应用lead()函数,可以简洁地完成列转行的需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0 前言

       我们在写Sql语句的时候没经常会遇到将查询结果列转行,例如做vintage报表的时候,SqlServer中有了PIVOT/UNPIVOT函数可以快速实现行转列和列转行的操作,然而hive中没有,大多数人都是通过写一系列的case when函数来实现,个人觉得使用case when这种方法虽然很好,但是很繁琐,这里抛砖引玉一下,通过使用窗口函数来实现列转换操作。

1 需求描述

废话不说,直接上表,说明咱们需要处理的问题:

                                                       表   1
月份 期数 金额
2019/01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值