还是HR schema下的两个表:employees和departments,现要查询每个部门中工资比平均工资高的那个人的姓名,工资和email
两种写法哪一个更优呢?
写法一:
select e.last_name,e.salary,e.email
from employees e,
(select department_id,avg(salary) avsal from employees group by department_id) d
where e.department_id=d.department_id and
e.salary>d.avsal;
写法二:
select last_name,salary,email
from employees outer
where salary>
(select avg(salary) from employees
where department_id=outer.department_id
group by department_id
);
请大侠们留下自己的详细分析作以讨论,谢谢!
|