小编Dee*_*lra的帖子

薪水高于其部门平均水平的员工 - 已优化

我们的数据库中只有一个名为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

sql t-sql sql-server

3
推荐指数
1
解决办法
403
查看次数

标签 统计

sql ×1

sql-server ×1

t-sql ×1