首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将特定的列数转换为行数

如何将特定的列数转换为行数
EN

Stack Overflow用户
提问于 2020-12-08 00:19:52
回答 2查看 40关注 0票数 0
代码语言:javascript
复制
INPUT        Member GEO_A_0 GEO_A_1 GEO_A_2 GEO_B_0 GEO_B_1 GEO_B_2 GEO_D_0 GEO_D_1 GEO_D_2
               Jon     0       1        0       1       0      0        1       0      0
               Scott   1       0        0       1       0      0        1       0      0
               Suresh  0       0        1       1       0      0        1       0      1

OUTPUT      GEO_A   Jon     0   1   0
            GEO_A   Scott   1   0   0
            GEO_A   Suresh  0   0   1
            GEO_B   Jon     1   0   0
            GEO_B   Scott   1   0   0
            GEO_B   Suresh  1   0   0
            GEO_D   Jon     1   0   0
            GEO_D   Scott   1   0   0
            GEO_D   Suresh  1   0   1

注意: GEO_A、GEO_B、GEO_D可能像GEO_ABD一样每天增长30-40列,因此我们需要动态地将GEO_*列转换为行

EN

回答 2

Stack Overflow用户

发布于 2020-12-08 00:22:43

一种通用方法是使用union all将列取消透视为行:

代码语言:javascript
复制
select 'GEO_A' as geo, member, geo_a_0 as col0, geo_a_1 as col1, geo_a_2 as col2 from mytable
union all select 'GEO_B', member, geo_b_0, geo_b_1 as col1, geo_b_2 from mytable
union all select 'GEO_D', member, geo_d_0, geo_d_1 as col1, geo_d_2 from mytable    

如果要对结果集进行排序:

代码语言:javascript
复制
select *
from (
    select 'GEO_A' as geo, member, geo_a_0 as col0, geo_a_1 as col1, geo_a_2 as col2 from mytable
    union all select 'GEO_B', member, geo_b_0, geo_b_1 as col1, geo_b_2 from mytable
    union all select 'GEO_D', member, geo_d_0, geo_d_1 as col1, geo_d_2 from mytable    
) t
order by geo, member
票数 0
EN

Stack Overflow用户

发布于 2020-12-08 01:05:38

Teradata支持UNPIVOT

代码语言:javascript
复制
select *
from vt
unpivot
 ((geo_0,geo_1,geo_2) 
   for x in
  ((GEO_A_0, GEO_A_1, GEO_A_2) as 'GEO_A',
   (GEO_B_0, GEO_B_1, GEO_B_2) as 'GEO_B', 
   (GEO_D_0, GEO_D_1, GEO_D_2) as 'GEO_D')
 ) as pvt 
;

可以使用dbc.columnsV动态创建IN列表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65185414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档