我正在尝试编写一个查询,列出经理的姓名和他们管理的人数。
在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 m.Name, COUNT(e.id) AS NumberOfEmployeesManaged
FROM Manager m INNER JOIN Employee e ON m.id = e.managerID
GROUP BY m.Name
我认为应该这样做,只是在加入经理和员工表后对员工 ID 进行简单计数,并按经理姓名分组。
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 = 经理的 id
SELECT COUNT(*) FROM Employee WHERE managerID=$id
或者,您不能使用 COUNT 并运行如下查询:
SELECT id FROM Employee WHERE managerID=$id
然后生成的行数将是经理管理的员工数。