Redshift SQL - 将行按 id 转换为列
Posted
技术标签:
【中文标题】Redshift SQL - 将行按 id 转换为列【英文标题】:Redshift SQL -- transposing rows by id into columns 【发布时间】: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 |
【问题讨论】:
【参考方案1】:您可以使用LISTAGG() 来执行此操作:
SELECT Id1, LISTAGG(Weight, '-') WITHIN GROUP (ORDER BY Id2)
FROM yourtable
GROUP BY Id1;
【讨论】:
以上是关于Redshift SQL - 将行按 id 转换为列的主要内容,如果未能解决你的问题,请参考以下文章