我有一个包含以下结构的表
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
我不确定它是否可能存在于Snowflake DB中。
编辑:实际的表在类别因子中有206个级别,所以我正在寻找一种编程方式,而不需要在查询中引用类别级别。
答案 0 :(得分:1)
这样的事情可以通过使用CASE语句为您提供所需的信息:
SELECT ID,
CASE WHEN Category = 'Age' THEN Value END as 'Age',
CASE WHEN Category = 'Income' THEN Value END as 'Income'
FROM TABLENAME
答案 1 :(得分: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;