我们的数据库中只有一个名为EMPLOYEESALARY的表,其中包含以下3列:
Employee_ID, Employee_Salary, Department_ID
Run Code Online (Sandbox Code Playgroud)
现在我必须选择薪水高于其部门AVERAGE的每位员工.我怎么做?
我知道这是一个重复的问题,但我发现最好的解决方案是:
SELECT * from employee join (SELECT AVG(employee_salary) as sal, department_ID
FROM employee GROUP BY Department_ID) as t1
ON employee.department_ID = t1.department_ID
where employee.employee_salary > t1.sal
Run Code Online (Sandbox Code Playgroud)
我们可以进一步优化它并在没有子查询的情况下进行优化吗?
参考:
在这里找到Schema,测试:SQL Fiddle