1

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

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

我不确定它在雪花数据库中是否可行。

编辑:实际表在类别因子中有 206 个级别,因此我正在寻找一种编程方式,而无需在查询中引用类别级别。

4

2 回答 2

1

像这样的东西应该通过使用 CASE 语句给你你需要的东西:

SELECT ID,
CASE WHEN Category = 'Age' THEN Value END as 'Age',
CASE WHEN Category = 'Income' THEN Value END as 'Income'
FROM TABLENAME
于 2018-02-08T18:53:36.457 回答
1

您可以使用条件聚合:

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;
于 2018-02-09T03:29:54.620 回答