每个部门的甲骨文平均工资
我有以下代码,该代码找到了每个部门的平均工资,并且效果很好。
我在输出中添加dections_name时遇到了问题。我知道我必须加入桌子,但我无法使它工作。
任何帮助将不胜感激。感谢所有回答的人。
CREATE table dept (department_id, department_name) AS
SELECT 1, 'IT' FROM DUAL UNION ALL
SELECT 2, 'SALES' FROM DUAL;
CREATE TABLE employees (employee_id, manager_id, first_name, last_name, department_id, sal,
serial_number) AS
SELECT 1, NULL, 'Alice', 'Abbot', 1, 100000, 'D123' FROM DUAL UNION ALL
SELECT 2, 1, 'Beryl', 'Baron',1, 50000,'D124' FROM DUAL UNION ALL
SELECT 3, 1, 'Carol', 'Chang',1, 100000, 'A1424' FROM DUAL UNION ALL
SELECT 4, 2, 'Debra', 'Dunbar',1, 75000, 'A1425' FROM DUAL UNION ALL
SELECT 5, NULL, 'Emily', 'Eden',2, 90000, 'C1725' FROM DUAL UNION ALL
SELECT 6, 3, 'Fiona', 'Finn',1, 88500,'C1726' FROM DUAL UNION ALL
SELECT 7,5, 'Grace', 'Gelfenbein',2, 55000, 'C1727' FROM DUAL;
SELECT
department_id,
ROUND(AVG(sal), 2) AS AVERAGE_SALARY
FROM employees
group by
department_id;
Expected output
DEPARTMENT_ID DEPARTMENT_NAME AVERAGE_SALARY
1 IT 82700
2 SALES 72500
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
由于每个组中只有一个
dections_name
,因此您可以加入表并在dectment_name
上使用聚合函数:或者,您可以汇总然后加入
:您的样本数据,两者都输出:
db< /a >
Since there is only one
department_name
in each group then you can join the tables and use an aggregation function on thedepartment_name
:Or, you can aggregate and then join:
Which, for your sample data, both output:
db<>fiddle here
您可以使用这样的查询:
以下是一个示例:
基于Department_ID的部门加入员工。
当您组合时,包括统计信息中未包含的两个字段。这将为您提供有关您要寻找的两个字段的统计信息。
您的结果将是
You can use a query like this:
Here's an example: https://dbfiddle.uk/?rdbms=oracle_18&fiddle=156f4e503bc3d6bfed3009137acacb23
Join the employees with department based on department_id.
When you do group by, include the 2 fields not included in the statistics. That'll give you statistics for the 2 fields you are looking for.
Your result will be