【发布时间】:2013-04-14 06:43:40
【问题描述】:
我正在练习 Oracle 子查询。(我是 Oracle 新手。)
问题:找出每个部门中收入最高的员工?
我的下面的查询有效(但我觉得它不是那么好,即使我得到了正确的结果)
select e.deptid, e.name, e.salary
from employee e
where e.salary = (select max(salary)
from employee b
where b.deptid = e.deptid )
还有其他简单的方法吗? (使用内部连接还是其他方式?)
我也想知道:我们究竟什么时候必须使用内连接而不是使用子查询?我们究竟什么时候必须使用子查询而不是内连接?
【问题讨论】:
-
您的查询不适用于很多员工有相同薪水的情况
-
为什么当有更多员工时它不起作用?,顺便说一句,员工和部门是不同的表......你知道为上述问题编写查询的其他方法吗?
-
这不是提议的副本的副本...它正在做一些完全不同的事情。
-
@JonathanLeffler - 好吧,这个怎么样? stackoverflow.com/q/1533240/146325
-
这对我来说效果更好......