マネージャーの名前と管理している人数をリストするクエリを作成しようとしています。
Manager
テーブルには、マネージャname
とがありid
ます。
Employee
テーブルには、従業員name
、id
およびがありmanagerID
ます。
マネージャーが管理している従業員の数を取得する方法がわかりません。
マネージャーの名前と管理している人数をリストするクエリを作成しようとしています。
Manager
テーブルには、マネージャname
とがありid
ます。
Employee
テーブルには、従業員name
、id
およびがありmanagerID
ます。
マネージャーが管理している従業員の数を取得する方法がわかりません。
SELECT COUNT(e.EmpID), m.ManagerID
FROM Employee e
INNER JOIN Manager m
ON e.ManagerID= m.ManagerID
GROUP BY m.ManagerID
SELECT count(emp.empid), mgr.managerid
FROM Employee emp
INNER JOIN Manager mgr ON emp.managerid=mgr.managerid
GROUP BY mgr.managerid;
JOIN で COUNT アグリゲーターを使用できるかどうかはわかりません。ただし、2 つのクエリを実行できます。マネージャーの名前と ID を選択します。2番目は次のようになります。
$id = マネージャーの ID
SELECT COUNT(*) FROM Employee WHERE managerID=$id
または、COUNT を使用して次のようなクエリを実行することはできません。
SELECT id FROM Employee WHERE managerID=$id
結果の行数は、マネージャーが管理する従業員の数になります。
SELECT m.Name, COUNT(e.id) AS NumberOfEmployeesManaged
FROM Manager m INNER JOIN Employee e ON m.id = e.managerID
GROUP BY m.Name
マネージャーと従業員のテーブルに参加した後の従業員IDの単純なカウントで、マネージャー名でグループ化されているはずです。