DB2 行列转置之行转列

构造表和数据
CREATE TABLE Sales(Year INTEGER,Quarter INTEGER,Results INTEGER);
insert into sales values(2005,4,27);
insert into sales values(2005,3,12);
insert into sales values(2005,2,40);
insert into sales values(2005,1,18);
insert into sales values(2004,4,10);
insert into sales values(2004,3,15);
insert into sales values(2004,2,30);
insert into sales values(2004,1,20);
select * from sales order by year,quarter

 YEAR QUARTER RESULTS
 ---- ------- -------
 2004       1      20
 2004       2      30
 2004       3      15
 2004       4      10
 2005       1      18
 2005       2      40
 2005       3      12
 2005       4      27

如果想转换成下面的样子
 YEAR Q1 Q2 Q3 Q4
 ---- -- -- -- --
 2004 20 30 15 10
 2005 18 40 12 27

转换SQL
SELECT Year
    ,MAX(CASE
            WHEN Quarter = 1
                THEN Results
            END) AS Q1
    ,MAX(CASE
            WHEN Quarter = 2
                THEN Results
            END) AS Q2
    ,MAX(CASE
            WHEN Quarter = 3
                THEN Results
            END) AS Q3
    ,MAX(CASE
            WHEN Quarter = 4
                THEN Results
            END) AS Q4
FROM Sales
GROUP BY YEAR

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/725820/viewspace-2132493/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/725820/viewspace-2132493/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值