次のような銀行スタッフ情報のテーブルがあります。
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 を使用しないと次の 3 つの列を作成できません。サブセレクトも試しましたが、うまくいきませんでした。誰にもアイデアはありますか?