I am reading the prep kit for MS exam 70-461 : Querying MS SQL Server 2012 and the author talks about the PIVOT
operator. I am using the AdventureWorks sample database to make tests.
I decided to do a simple test and see if I could present the average base rate per department on columns split for each gender (M, F).
I have the following:
WITH CTE AS
(
SELECT
[DepartmentName],
[Gender],
[BaseRate]
FROM
[AdventureWorks].[dbo].[DimEmployee]
)
SELECT
[DepartmentName], [M], [F]
FROM
[AdventureWorks].[dbo].[DimEmployee] PIVOT (Avg(BaseRate) FOR [Gender] IN ([M], [F])) AS P
However, I noticed this:
There are no groups on [DepartmentName]
as should be (according to the book) since it's the only field not specified in the PIVOT
operator.
I can add a simple GROUP BY clause but I am not sure that this would yield the appropriate result and this also means that I did not correctly understand the use of PIVOT.
Any idea where I am wrong ?