MySQL查询每个部门的员工个数(部门员工数可能为0) | 您所在的位置:网站首页 › mysql岗位 › MySQL查询每个部门的员工个数(部门员工数可能为0) |
MySQL查询每个部门的员工个数
问题:查询每个部门的员工个数 注意!某些部门可能是没有员工的(员工个数为0)。(事实上是department_id在120之后的那些部门) 这时候如果简单利用连接查询并分组,将会使得员工个数为0的部门不会被查询出来。 SELECT e.department_id,COUNT(*) FROM employees e JOIN departments d ON e.`department_id` = d.`department_id` GROUP BY e.`department_id`;查询结果如下: 可以看到结果中并没有人数为0的部门 查询结果如下: 此时包含了所有的部门(包括人数为0的) 查询结果如下: 可以看到还是有问题,员工个数为0的部门此时统计出来员工个数为1了。 我们需要对外连接查询所SELECT的字段做一些改进,“强行”把这些员工人数为0的部门的统计人数纠正为0。修改如下: SELECT d.*,IF(employee_id IS NULL,0,COUNT(*)) 部门人数 FROM departments d LEFT JOIN employees e ON e.`department_id` = d.`department_id` GROUP BY d.`department_id`;查询结果如下: |
CopyRight 2018-2019 实验室设备网 版权所有 |