【发布时间】:2019-06-18 09:42:59
【问题描述】:
表格名称:职业
**Name Occupation**
Samantha Doctor
Julia Actor
Maria Actor
Meera Singer
Ashely Professor
Ketty Professor
Christeen Professor
Jane Actor
Jenny Doctor
Priya Singer
我们的目标是编写一个“透视”上述表数据的查询,以便显示以下结果:
Jenny Ashley Meera Jane
Samantha Christeen Priya Julia
NULL Ketty NULL Maria
我写了以下查询:
WITH pivot_data AS
(
SELECT Occupation as Occupation1, -- Grouping Column
Occupation, -- Spreading Column
Name -- Aggregate Column
FROM Occupations
)
SELECT [Doctor], [Professor], [Singer], [Actor]
FROM pivot_data
PIVOT (max(Name)
FOR Occupation IN ([Doctor], [Professor], [Singer], [Actor])
) AS p;
很遗憾,上述查询给出了以下错误结果:
Doctor Professor Singer Actor
NULL NULL NULL Maria
Samantha NULL NULL NULL
NULL Ketty NULL NULL
NULL NULL Priya NULL
有人可以发布一个将显示所需结果的 sql 查询吗?(另外,如果您可以使用 sql server“pivot”命令执行一个查询,并使用Out sql server“pivot”命令执行另一个查询,那将非常有帮助)
【问题讨论】:
标签: sql sql-server pivot aggregate aggregate-functions