员工表
ID Name Supervisor_ID
1 James NULL
2 Peter 1
3 Howard 1
4 Michele 2
5 Nicholas 2
6 Donald 2
7 Jackson 3
8 Anderson 3
9 Jeff 3
10 Will 3
我应该在最后得到这个
ID Name Supervisor_Of_X_Employee
4 Peter 3
2 Howard 4
我试过
SELECT t1.employee_id
FROM employee t1
JOIN (SELECT DISTINCT supervisor_id FROM employee) t2
ON t1.employee_id = t2.supervisor_id;
似乎没有产生我想要的东西
有什么想法吗?
谢谢
最佳答案
你想找到主管人数,所以你像这样对主管 ID 进行分组
SELECT Supervisor_ID, count(*) as CNT
FROM employee
GROUP BY Supervisor_ID
添加 HAVING COUNT(*) > 2
以获得 3 或更多的数。
哦...但你也想要这个名字?然后你必须重新加入表以获取名称。
SELECT E.ID, E.Name, SUB.CNT
FROM (
SELECT Supervisor_ID, count(*) as CNT
FROM employee
GROUP BY Supervisor_ID
HAVING COUNT(*) > 2
) AS SUB
JOIN employee as E on E.ID = SUB.Supervisor_ID
关于mysql - 显示监管 3 名或更多员工的主管,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58609885/