透视两个列以编程方式保留相应的ID



我有一个带有以下结构的表

ID    Category    Value
1        Age        23
1      Income     10000
2        Age        30
2      Income     50000

我想旋转它,以便每个ID有一行

ID      Age   Income
1       23     10000
2       30     50000

我不确定在雪花dB中是否可能

编辑:实际表在类别因子中具有206个级别,因此我正在寻找一种程序化方法,而无需在查询中参考类别级别。

这样的东西应该通过使用案例语句为您提供所需的东西:

SELECT ID,
CASE WHEN Category = 'Age' THEN Value END as 'Age',
CASE WHEN Category = 'Income' THEN Value END as 'Income'
FROM TABLENAME

您可以使用条件聚合:

SELECT ID,
       MAX(CASE WHEN Category = 'Age' THEN Value END) as Age,
       MAX(CASE WHEN Category = 'Income' THEN Value END) as Income
FROM TABLENAME
GROUP BY ID;

相关内容

最新更新