SELECT pnumber, pname, COUNT(*)
FROM project
INNER JOIN works_on ON pno=pnumber
INNER JOIN department ON dnumber=dnum
GROUP BY pnumber
现在,mysql将返回项目编号和名称,以及正在处理该项目的员工数量。我想做的是mysql只统计第5部门的员工。换言之,有来自不同部门的人在做项目,但我希望只计算第5部门的人,而不是全部。
最佳答案
如果Barmar和Shafeeq提出的使用WHERE
子句的建议对您不起作用(例如,如果您需要在结果中包含所有部门,但只计算来自部门5的人员),则可以使用:
SUM(IF(dnum=5, 1, 0)) AS CountFromDepartment5
所以我们有:
SELECT pnumber, pname, COUNT(*) AS TotalCount, SUM(IF(dnum=5, 1, 0)) AS CountFromDepartment5
FROM project
INNER JOIN works_on ON pno=pnumber
INNER JOIN department ON dnumber=dnum
GROUP BY pnumber
关于mysql - 用条件mysql计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19751211/