Sql 如何在红移中合并行

Sql 如何在红移中合并行,sql,amazon-redshift,Sql,Amazon Redshift,我有一个红移的表,其中有一列具有公共标识符,还有许多其他属性列。但是,公共标识符显示在多行中,每个属性对应一行。我想合并它们 i、 e 我想把它变成 Common ID | Attribute 1 | Attribute 2 123 X Y 987 B A 这基本上是从我旋转一个表开始的(使用case语句),但是最终的输出需要根据公共id进行合并或分组(但是没有聚合) 请注意,在最终产品中大约有20个属性,因此理想

我有一个红移的表,其中有一列具有公共标识符,还有许多其他属性列。但是,公共标识符显示在多行中,每个属性对应一行。我想合并它们

i、 e

我想把它变成

Common ID | Attribute 1 | Attribute 2
123         X             Y
987         B             A
这基本上是从我旋转一个表开始的(使用case语句),但是最终的输出需要根据公共id进行合并或分组(但是没有聚合)

请注意,在最终产品中大约有20个属性,因此理想的解决方案是不知道属性的数量。这也意味着公共id最多可以出现20次左右

我查看了listagg,但希望最终输出的列数相同,而不是一个聚合/连接列。

使用聚合:

select common_id, max(attribute_1) as attribute_1, max(attribute_2) as attribute_2
from t
group by common_id;
您可能可以在生成数据的查询中通过修复
分组依据
键来解决此问题。

另请参见:。Amazon Redshift基于PostgreSQL 8.0.2。
select common_id, max(attribute_1) as attribute_1, max(attribute_2) as attribute_2
from t
group by common_id;