【问题标题】:Redshift SQL -- transposing rows by id into columnsRedshift SQL - 将行按 id 转换为列
【发布时间】:2021-05-25 13:03:33
【问题描述】:

我正在使用 Redshift SQL。
我想将“表”中“Id1”的不同行转换为列。
因此,输出应该像最底部的表一样,为每个“Id2”提供权重作为列。
或者,将权重连接到一列中。

任何有关功能或使用方法的指导将不胜感激。

表格

Id1 Id2 Weight
1 1 55
1 2 65
2 1 78
3 1 70
3 2 90
3 3 82
4 4 44
4 4 51

想要的输出

Id1 Weight
1 55-65
2 78
3 70-90-2
4 44-51

【问题讨论】:

    标签: sql amazon-redshift


    【解决方案1】:

    您可以使用LISTAGG() 来执行此操作:

    SELECT Id1, LISTAGG(Weight, '-') WITHIN GROUP (ORDER BY Id2)
    FROM yourtable
    GROUP BY Id1; 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-04
      • 1970-01-01
      • 2019-02-10
      • 1970-01-01
      • 1970-01-01
      • 2018-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多