【发布时间】:2019-09-10 19:10:04
【问题描述】:
我需要一些关于转置表格的输入/帮助:
Key | ATTR_NAME | ATTR_VALUE
1234| SS_VALUE | SENSITIVE
1234| XX_VALUE | 4456
转置后,我希望我的输出看起来像:
Key | SS_VALUE | XX_VALUE
1234| SENSITIVE| 4456
提前致谢,
【问题讨论】:
我需要一些关于转置表格的输入/帮助:
Key | ATTR_NAME | ATTR_VALUE
1234| SS_VALUE | SENSITIVE
1234| XX_VALUE | 4456
转置后,我希望我的输出看起来像:
Key | SS_VALUE | XX_VALUE
1234| SENSITIVE| 4456
提前致谢,
【问题讨论】:
如果这只是大约 2 个 cols 转置,那么条件聚合可能会对您有所帮助 -
SELECT Key
,MAX(CASE WHEN ATTR_NAME = 'SS_VALUE' THEN ATTR_VALUE END) SS_VALUE
,MAX(CASE WHEN ATTR_NAME = 'XX_VALUE' THEN ATTR_VALUE END) XX_VALUE
FROM T
GROUP BY Key
【讨论】:
一种选择是使用包含 pivot 关键字的查询,因为您需要的是旋转:
select *
from
( select * from tab )
pivot
(
max(attr_value) for attr_name in ( 'SS_VALUE' as ss_value, 'XX_VALUE' as xx_value )
);
【讨论】: