我在redshift中有一个表,其中包含一个共同标识符的列,以及许多其他属性列。然而,相同的标识符会出现在多行中,每个属性都有一行。我希望将它们合并。
例如:
Common ID | Attribute 1 | Attribute 2
123 X null
123 null Y
987 null A
987 B null
我想要将其转换为:
Common ID | Attribute 1 | Attribute 2
123 X Y
987 B A
这个问题的本质是我通过使用 case 语句来旋转表格,但最终输出需要按照共同的 id 合并或分组(但没有聚合)。
请注意,在最终产品中,大约有 ~20 个属性,因此最好是一个对属性数量不敏感的解决方案。这也意味着相同的 id 最多可能出现 20 次左右。
我已经研究了 listagg 但想要最终输出具有相同数量的列,而不是一个聚合/串联的列。