在 Teradata 中将多行转换为具有多个字段的 1 列 SQL
Turn Multiple Rows into 1 Column with Multiple Fields in Teradata SQL
我有一个 table 在 Teradata SQL Assistant
中看起来像这样:
Software Name Employee
Word Bob
Excel Bob
Word Kim
Excel Kim
PowerPoint Bob
我想创建它,以便对于每个软件,只有 1 行,每个员工根据他们是否拥有该软件存储为二进制 1 或 0。最终 Table 应如下所示:
Software Name Bob Kim
Word 1 1
Excel 1 1
PowerPoint 1 0
我正在使用 Teradata 15.10
,但由于 Teradata 15.10
不支持 PIVOT
功能,所以我无法弄清楚如何执行此操作。
只使用条件聚合:
select software_name,
sum(case when employee = 'Bob' then 1 else 0 end) as Bob,
sum(case when employee = 'Kim' then 1 else 0 end) as Kim
from t
group by software_name;
我有一个 table 在 Teradata SQL Assistant
中看起来像这样:
Software Name Employee
Word Bob
Excel Bob
Word Kim
Excel Kim
PowerPoint Bob
我想创建它,以便对于每个软件,只有 1 行,每个员工根据他们是否拥有该软件存储为二进制 1 或 0。最终 Table 应如下所示:
Software Name Bob Kim
Word 1 1
Excel 1 1
PowerPoint 1 0
我正在使用 Teradata 15.10
,但由于 Teradata 15.10
不支持 PIVOT
功能,所以我无法弄清楚如何执行此操作。
只使用条件聚合:
select software_name,
sum(case when employee = 'Bob' then 1 else 0 end) as Bob,
sum(case when employee = 'Kim' then 1 else 0 end) as Kim
from t
group by software_name;