SQL 高级之前的聚合 SQL

SQL Aggregation prior to advanced SQL

给定一个像这样的简单案例:

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

我需要写什么 SQL 语句 如果我想使用 SQL 生成以下结果而不使用高级 CUBE、Rollup 等,只需使用普通的 SQL-92 :

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

我想知道过去使用SQL的ETL如何生成这些信息?

备注:可以在性别上使用分组依据,并在 DetptId 上使用分组依据来获得垂直结果集,但这显然不是我想要的。

您可以尝试以下数据透视查询:

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