我需要一些关于oracle sql的帮助。问题:我有2个表员工和部门。我从一个查询中得到了平均部门薪水,我想用它来看看有多少员工比他们部门的平均薪酬更高。到目前为止,我有这个。单行子查询返回多个行
该查询返回的部门平均:
select ROUND(AVG(Salary), 2) Dept_avg_sal
from employee, department
where department.department_id = employee.department_id
group by department_name
什么,我试图做的是:
select employee_name,
salary,
d.department_name
from employee e,
department d
where salary > (select ROUND(AVG(Salary), 2) Dept_avg_sal
from employee,
department
where department.department_id = employee.department_id
group by department_name)
,即时通讯得到的是错误:01427。 00000 - “单行子查询返回多于一行”
我知道同一部门的2名员工赚取的钱比平均数多,我认为这是造成问题的原因。
EMPLOYEE_NAME - SALARY - -DEPARTMENT_NAME- DEPT_AVG_SAL
-------------------- ---------------------- -------------------- ------------
FISHER - 3000.00 - SALES - 2500.00
JONES - 3000.00 - ACCOUNTING - 2750.00
KING - 5000.00 - EXECUTIVE - 4500.00
**SCOTT - 2500.00 - IT - 2100.00
SMITH - 2900.00 - IT - 2100.00**
WILSON - 3000.00 - RESEARCH - 2633.33
任何帮助将非常感激。
为什么你给这个'MySQL'添加了标签,你是否需要一个适用于Oracle和MySQL的答案? –