2016-04-29 110 views
0

我都试过,但显然它只会给MT的平均工资为所有的部门不是每个职业分类如何显示department_id,job_id和每个部门中每个工作分类的平均工资?

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

可以请你给你的表结构和输出乌伊想吗? –

+0

如果你的聚合函数在子查询中,你为什么使用group by? –

+0

@BrijalSavaliya我没有输出,但我的表是部门,员工作业 我在ORACLE SQL上使用HR模式 –

回答

1

我想你想这个(如果你的目标是获得几个部门标识/ JOB_ID平均工资) :

SELECT e.department_id, e.job_id, avg(e.salary) 
FROM employees e 
GROUP BY e.department_id, e.job_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; 
2

你想该部门的平均薪水是多少?做一个相关的子查询:

SELECT e.department_id, e.job_id, (SELECT avg(salary) 
            FROM employees e2 
            where e2.department_id = e.department_id) 
FROM employees e 
相关问题