Я читаю комплект подготовки для экзамена MS 70-461: запрос MS SQL Server 2012 и автор рассказывает об операторе PIVOT
. Я использую базу данных образцов AdventureWorks для проведения тестов.SQL Server pivot не группируется
Я решил сделать простой тест и посмотреть, могу ли я представить среднюю базовую ставку для каждого отдела по столбцам, разбитым на каждый пол (M, F).
У меня есть следующие:
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
Однако, я заметил это:
Там нет групп на [DepartmentName]
как должно быть (по книге), так как это единственное поле не указано в PIVOT
оператора.
Я могу добавить простое предложение GROUP BY, но я не уверен, что это даст соответствующий результат, а это также означает, что я не правильно понял использование PIVOT.
Любая идея, где я ошибаюсь?
Просто маленький вопрос: зачем вам нужен КТР здесь? – cha
В книге говорится о том, чтобы настроить агрегирующие поля для оператора PiVOT. – ApplePie
@ AlexandreP.Levasseur - Но вы забыли «SELECT» от него. –