2017-01-11 3 views
1

Учитывая простой случай, как это:SQL Aggregation до продвинутого SQL

Gender DeptID 
-------------- 
M  1 
F  1 
M  2 
F  2 
F  2 

Что оператор SQL Мне нужно написать Если я хочу, чтобы генерировать следующий результат, используя SQL без использования передовой CU, Сведение и т.д., только с помощью простой SQL-92:

GenderSum Dept1Sum Dept2Sum 
---------------------------- 
M   1   1 
F   1   2 

Я задавался вопросом, как такая информация будет генерироваться ETL в прошлом, используя SQL?

Примечание. Можно использовать Группу по полу и объединению, чтобы группа с помощью DetptId получала вертикальный набор результатов, но это явно не то, что я хочу.

+0

Так вы просите для простого запроса? –

+0

Запрос любой сложности сделает :) – NoChance

+0

Какую версию SQL вы используете? –

ответ

3

Вы можете попробовать следующий сводную запрос:

SELECT Gender AS GenderSum, 
     SUM(CASE WHEN DeptID = 1 THEN 1 ELSE 0 END) AS Dept1Sum, 
     SUM(CASE WHEN DeptID = 2 THEN 1 ELSE 0 END) AS Dept2Sum 
FROM yourTable 
GROUP BY Gender 

 Смежные вопросы

  • Нет связанных вопросов^_^