0
我有银行的工作人员信息的表,看起来像这样:的Oracle 11g R2 SQL行列
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的。我也尝试了子选择,没有运气。任何人有任何想法?
非常好,非常感谢你很多时候,“情况下”部分正是我所看到的为,并且非常直观。感谢您的帮助,而且PIVOT也非常有用。 – trueCamelType