我有一张银行员工信息表,如下所示:
branchNumber Position firstName lastName staffNumber
------------ -------- --------- -------- -----------
25 Manager john doe 11111
25 Secretary robert paulson 11112
25 Secretary cindy lu 11113
66 Manager tim timson 22223
66 Manager jacob jacobson 22224
66 Secretary henry henryson 22225
66 Supervisor paul paulerton 22226
这个其实我已经完成了,但是我使用SQL公用表表达式完成了赋值,在这个项目中不能使用,我需要这种格式。
branchNumber numOfManagers numOfSecretaries numOfSupervisors totalEmployees
------------ ------------- ---------------- ---------------- --------------
25 1 2 0 3
66 2 1 1 4
我的问题是从一行中获取多列信息,到目前为止我有这个,
SELECT branchNumber, COUNT(*) AS numOfManagers
FROM Staff
WHERE position = 'Manager'
GROUP BY branchNumber, Position;
这会为 numOfManagers 输出正确的信息,但是在不使用 CTE 的情况下制作接下来的三列让我难以理解。我也尝试了子选择,但没有运气。有人有什么想法吗?