如何基于Oracle HR数据库查询同一部门内各职位的薪资总和
查询Oracle HR数据库指定部门内各职位薪资总和的方案
Oracle HR数据库中,我们可以通过关联员工、部门、职位三张核心表,配合分组聚合函数实现需求。以下是具体实现:
SELECT d.department_name AS "部门名称", j.job_title AS "职位名称", SUM(e.salary) AS "薪资总和" FROM employees e JOIN departments d ON e.department_id = d.department_id JOIN jobs j ON e.job_id = j.job_id WHERE d.department_id = 60 -- 替换为目标部门ID,也可改用部门名称:d.department_name = 'IT' GROUP BY d.department_name, j.job_title ORDER BY "薪资总和" DESC;
关键部分说明
- 表关联:通过
department_id关联员工表与部门表,通过job_id关联员工表与职位表,确保结果显示易读的部门/职位名称而非ID。 - 条件过滤:
WHERE子句指定要查询的目标部门,用ID查询效率更高,用名称更直观,按需选择即可。 - 分组聚合:
GROUP BY按部门+职位分组,SUM()函数计算每组的薪资总和。 - 排序(可选):
ORDER BY按薪资总和降序排列,便于快速查看薪资高低分布。
调整提示
如果仅知道部门名称,将WHERE条件替换为d.department_name = '你的目标部门名称'即可(注意Oracle默认不区分大小写,若数据库开启大小写敏感需严格匹配)。
内容的提问来源于stack exchange,提问作者edwin.ill
相关产品推荐
相关产品推荐

