【问题标题】:How to display department_id, job_id and the average salary for each job classification in each department?如何显示每个部门中每个职位分类的department_id、job_id和平均工资?
【发布时间】:2023-03-27 10:51:02
【问题描述】:

我已经尝试过了,但显然它只会为 mt 提供所有部门的平均工资,而不是每个职位分类

SELECT e.department_id, e.job_id, (SELECT avg(salary)
                                   FROM employees)
FROM employees e
GROUP BY department_id, job_id;

【问题讨论】:

  • 你能提供你想要的表格结构和输出吗?
  • 如果您的聚合函数在子查询中,为什么要使用 group by?
  • @BrijalSavaliya 我没有输出,但我的表是部门,员工工作我在 ORACLE SQL 上使用 HR 模式

标签: sql group-by subquery correlated-subquery


【解决方案1】:

您想要部门的平均工资吗?做一个相关的子查询:

SELECT e.department_id, e.job_id, (SELECT avg(salary)
                                   FROM employees e2
                                   where e2.department_id = e.department_id)
FROM employees e

【讨论】:

    【解决方案2】:

    我想你想要这个(如果你的目标是获得一对 department_id / job_id 的平均工资):

    SELECT e.department_id, e.job_id, avg(e.salary)
    FROM employees e
    GROUP BY e.department_id, e.job_id;
    

    如果你只想要 Department_id 的平均值,你可以这样写:

    SELECT e.department_id, e.job_id, 
        (SELECT avg(e1.salary)
        FROM employees e1
        where e1.department_id = e.department_id)
    FROM employees e
    GROUP BY e.department_id, e.job_id;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-31
      • 2021-01-14
      • 1970-01-01
      • 2022-11-22
      • 2012-03-12
      • 2021-12-18
      • 1970-01-01
      相关资源
      最近更新 更多