select count(m.emp_id), m.EMP_ID
from employee e join employee m
on e.SUPERIOR_EMP_ID = m.EMP_ID
group by m.EMP_ID;
我可以得到m.emp_id
來顯示,但我需要m.Name
。有小費嗎?如何找到一個人並統計他們管理的人數?
select count(m.emp_id), m.EMP_ID
from employee e join employee m
on e.SUPERIOR_EMP_ID = m.EMP_ID
group by m.EMP_ID;
我可以得到m.emp_id
來顯示,但我需要m.Name
。有小費嗎?如何找到一個人並統計他們管理的人數?
要查看m.Name
,您只需要將m.Name
添加到您的SELECT
和GROUP BY
即可。也就是說,我不認爲你的邏輯是對的。你想要一個COUNT(e.Emp_ID)
,讓每經理員工人數:
SELECT COUNT(e.Emp_ID), m.Emp_ID, m.Name
FROM Employee e
INNER JOIN Employee m on e.Superior_Emp_ID = m.Emp_ID
GROUP BY m.Emp_ID, m.Name
如果你不關心看到經理的員工ID,您可以從您選擇刪除,只需查看名稱:
SELECT COUNT(e.Emp_ID), m.Name
FROM Employee e
INNER JOIN Employee m on e.Superior_Emp_ID = m.Emp_ID
GROUP BY m.Name
也許給它一些別名,所以它更有意義的讀者:
SELECT mng.Name as "Manager", COUNT(emp.Emp_ID) as "Number of Employees"
FROM Employee emp
INNER JOIN Employee mng on emp.Superior_Emp_ID = mng.Emp_ID
GROUP BY mng.Name
謝謝soo! – icecreamguy12
@ icecreamguy12沒有問題..這是否解決了你的問題? –
這是不可能不知道你的數據庫結構來回答,即使如此,你會收到詳細諮詢如果您有特定的錯誤,請回答問題。 –