SELECT manager.ename AS "Mgr Name", ( Select COUNT(*)
FROM emp worker
WHERE worker.mgr = manager.empno
) AS "Total Emp"
FROM emp worker, emp manager
WHERE worker.mgr = manager.empno;
这个怎么样?它连接在同一个表上,以匹配所有经理和员工,并返回直接报告的数量:
SELECT
m.ename AS [Mgr Name],
COUNT(DISTINCT e.empno) AS [Total Emp]
FROM emp e
JOIN emp m ON m.empno = e.mgr
GROUP BY m.ename;
使用相关子查询或join
与group by
:
SELECT m.ename AS "Mgr Name",
( Select COUNT(*) FROM emp e WHERE e.mgr = m.empno
) AS num_employees
FROM emp m;