【Teradata SQL】行列转换函数PIVOT和UNPIVOT、TD_UNPIVOT

本文介绍了Teradata SQL中的行转列函数PIVOT和列转行函数UNPIVOT。PIVOT用于将行转换为列,适合报告用途,提供了将数据聚合和旋转的机制。UNPIVOT则是PIVOT的逆操作,将列转换为行。文章通过实例展示了如何进行单个和多个维度的转换,并提及UNPIVOT内部调用了td_UNPIVOT表运算符。
摘要由CSDN通过智能技术生成

1.行转列函数PIVOT

Pivot是用于将行转换为列的关系运算符。该函数对于报告用途很有用,因为它允许您聚合和旋转数据以创建易于读取的表。在SELECT语句的FROM子句中指定PIVOT运算符。对于可以用包含透视运算符的select查询指定的其他子句没有限制。

(1)语法

 (2)实例

#数据准备
CREATE
TABLE star1( country VARCHAR(20) ,state VARCHAR(10) , yr INTEGER ,qtr VARCHAR(3) ,sales INTEGER ,cogs INTEGER ); insert into star1 values('USA','CA',2001,'Q1',30,15); insert into star1 values('Canada','ON',2001,'Q2', 10, 0); insert into star1 values('Canada','BC',2001,'Q3', 10 ,0); insert into star1 values('USA','NY',2001,'Q1',45, 25); insert into star1 values('USA','CA',2001,'Q2', 50 ,20); SELECT * FROM star1;

单个转换维度(Quarter)实例,将Q1、Q2、Q3季度的sales和cogs值转换为列,转换效果如下:

#写法一
SELECT *
FROM star1 PIVOT (
SUM(sales) as ss1, SUM(cogs) as sc FOR
qtr
IN ('Q1&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值