【发布时间】:2011-09-22 01:56:25
【问题描述】:
PIVOT 这个 SQL 结果的最佳方法是什么?我想知道 count(*) 是否可以作为数据透视的一部分完成,而不必事先对数据进行分组?
SELECT
e.fullname,
e.BusinessUnit,
COUNT(*) as total
FROM EmpComplaints e
WHERE e.BusinessUnit in ('1-Sales', '2-Tech', '3-Marketing')
GROUP BY e.fullname, e.BusinessUnit
order by e.fullname, e.BusinessUnit
我基本上是向每个员工报告他们在三个业务部门中的每个部门拥有的报告数量:销售、技术、营销。并希望得到一个结果,该结果将在左侧列出全名,每个名称出现一次,每个名称都有一个 ('1-Sales', '2-Tech', '3-Marketing') 列,其中包含一个数字将是计数(*)
【问题讨论】:
-
是的,您可以使用 PIVOT。使用 PIVOT 和 UNPIVOT msdn.microsoft.com/en-us/library/ms177410.aspx
-
您使用的是什么版本的 SQL Server?
标签: sql-server pivot