在 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;