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/

10-10 21:36