decode函数应用,对角线算法实现表中数据的行列转换

本文介绍了一种使用SQL语句将原始数据表中的年份、月份和对应数值转换为以年份为行、各月数值为列的新表结构的方法。通过使用DECODE函数和GROUP BY子句实现数据的聚合和重组,适用于需要对时间序列数据进行整理和分析的场景。

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

将下表用一条语句

Year

month

XX

1921

1

1.1

1921

2

1.2

1921

3

1.3

1921

4

1.4

1922

1

2.1

1922

2

2.2

1922

3

2.3

1922

4

2.4

转化为下表:

year

M1

M2

M3

M4

1921

1.1

1.2

1.3

1.4

1922

2.1

2.2

2.3

2.4

 

 

 

 

select b.y,sum(mm1) as m1

          ,sum(mm2) as m2

          ,sum(mm3) as m3

          ,sum(mm4) as m4

    from(

          select year as y

            ,DECODE( MONTH,'1',XX,0) as mm1

            ,DECODE ( MONTH,'2',XX,0) as mm2

            ,DECODE ( MONTH,'3',XX,0) as mm3

            ,DECODE ( MONTH,'4',XX,0) as mm4

         from SCOTT.XX ) b group by  b.y

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值