首页 > 解决方案 > 如果给定位置 ID,是否可以检索部门数量和在该部门工作的员工数量

问题描述

如果给定位置 ID,是否可以检索部门数量和在该部门工作的员工数量?Location_id列在部门表中。员工与部门分享department_id

使用此查询无法获得正确的结果:

select 
    count(E.employee_id), count(D.DEPARTMENT_ID)
from 
    employees e   
join 
    departments d on (e.department_id = d.department_id) 
where
    D.LOCATION_ID = 1700;

标签: sql

解决方案


我怀疑您distinct在计算部门时需要:

SELECT
    COUNT( E.employee_id )
  , COUNT(DISTINCT d.department_id )
FROM employees e
JOIN departments d ON e.department_id = d.department_id
WHERE d.location_id = 1700;

或者,您需要按部门分组:

SELECT
    COUNT( E.employee_id )
  , d.department_id
FROM employees e
JOIN departments d ON e.department_id = d.department_id
WHERE d.location_id = 1700
GROUP BY d.department_id;

推荐阅读