我正在尝试编写一个查询来获取每个部门的员工数。这是我正在使用内部查询。 我面临什么样的问题是我需要过滤掉其计为小于10 这里是我的查询如何looks-如何根据内部查询添加where子句
SELECT
DPT.ID,
DPT.NAME,
(SELECT COUNT(1) FROM EMPLOYEE E WHERE E.DEPARTMENT_ID=DPT.ID) EMP_COUNT
FROM
DEPARTMENT DPT
WHERE
EMP_COUNT >=10; -- this part is not working
任何人都可以提出一些我可以代替EMP_COUNT >=10
更换记录? 在此先感谢。
这是一个很好的建议!但是这会为count> = 0工作吗? – Kshitij
@Kshitij:如果只有你切换到'LEFT JOIN' *(编辑:)*并将COUNT(*)改为像COUNT(E.ID)'这样的东西。 –
计数不能是负数。所以,如果你想要的话,只要删除'HAVING'部分。如果您希望有0名员工的部门,请按@Andriy的建议,使用'LEFT JOIN'和'COUNT(E.DEPARTMENT_ID)'而不是'COUNT(*)'。 –