我正在尝试编写一个查询,列出经理的姓名和他们管理的人数。
在Manager
表中,我们有经理name
和id
。
在Employee
表中,我们有员工name
,id
和managerID
。
我不明白如何获得经理管理的员工数量。
答案 0 :(得分:2)
SELECT COUNT(e.EmpID), m.ManagerID
FROM Employee e
INNER JOIN Manager m
ON e.ManagerID= m.ManagerID
GROUP BY m.ManagerID
答案 1 :(得分:0)
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进行简单计算,并按经理名称分组。
答案 2 :(得分:0)
SELECT count(emp.empid), mgr.managerid
FROM Employee emp
INNER JOIN Manager mgr ON emp.managerid=mgr.managerid
GROUP BY mgr.managerid;
答案 3 :(得分:0)
我不知道你是否可以在JOIN中使用COUNT聚合器。但是你可以运行2个查询。人们可以选择经理的姓名& ID。第二个看起来像这样:
$ id =经理的身份
SELECT COUNT(*) FROM Employee WHERE managerID=$id
或者,您无法使用COUNT并运行如下查询:
SELECT id FROM Employee WHERE managerID=$id
然后,结果行的数量将是经理管理的员工数量。