oracle - 如何显示另一个表的计数?
问题描述
我是甲骨文的新手。
现在,我想显示在每个部门工作的员工人数,
每个部门的员工人数必须少于 2 人。
但我只展示department_id
和department_name
我不知道怎么表现count
。
SELECT d.DEPARTMENT_ID, d.DEPARTMENT_NAME
FROM DEPARTMENTS d
WHERE 2 > (SELECT COUNT(e.EMPLOYEE_ID)
FROM EMPLOYEES e
WHERE d.DEPARTMENT_ID = e.DEPARTMENT_ID);
我的输出:
DEPARTMENT_ID | DEPARTMENT_NAME
... | ...
正确的输出:
DEPARTMENT_ID | DEPARTMENT_NAME | COUNT(EMPLOYYE_ID) |
... | ... | ... |
解决方案
试试这个(新增处理部门无员工案件的更正)
SELECT d.DEPARTMENT_ID, d.DEPARTMENT_NAME, NVL(e2.cnt,0) count
FROM DEPARTMENTS d
LEFT JOIN (select e.department_id, count(*) cnt from employees e group by e.department_id) e2
ON d.department_id=e2.department_id
where e2.cnt <2
或者,更紧凑
SELECT d.DEPARTMENT_ID, d.DEPARTMENT_NAME, count(e2.employee_id)
FROM DEPARTMENTS d
LEFT JOIN employees e ON d.department_id=e.department_id
GROUP BY d.DEPARTMENT_ID, d.DEPARTMENT_NAME
HAVING COUNT(*) <2
推荐阅读
- javascript - Lodash 对对象数组中的项目进行分组
- javascript - 在 JavaScript 中将文本转换为小写
- kendo-ui - Kendo DatePicker 使用用户角色隐藏
- dart - 我可以在 AngularDart 中使用用 Angular(JS) 编写的组件吗?
- r - write.csv 用单引号代替双引号
- reactjs - react-router - 如何更改网址
- python - 我想获取所有日期,不包括python中两个日期之间的周末
- python - 使用 Python 找出两个 Excel 中的附加事务
- android - 如何使用 gradle resValue 以类型实现 res“项目”
- dart - 由于以下原因而失败:状态不佳:BuiltList 没有构建器工厂