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
给定一个像这样的简单案例:
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