【发布时间】:2018-11-12 11:35:18
【问题描述】:
我正在使用带有附加表 PROJECT 的默认 oracle scott 数据库,其中有两列:projectno 和 empno。
我想为每个项目选择薪水最高的员工。
我知道如何使用不相关的子查询来做到这一点:
SELECT p.projno,
e.sal,
e.ename
FROM emp e
INNER
JOIN proj_emp p
ON e.empno = p.empno
WHERE (e.sal, p.projno)
IN (SELECT MAX(e.sal),
p.projno
FROM emp e INNER JOIN proj_emp p
ON e.empno = p.empno
GROUP BY p.projno)
但是,我被要求使用写在 WHERE 子句中的相关子查询来执行此操作,但我想知道这是否可能?
【问题讨论】:
-
您是否也被要求在没有窗口功能的情况下执行此操作?
-
在练习说明中,所有内容都是针对每个项目中薪水最高的员工的姓名,并在
WHEREcaluse 中带有相关子查询
标签: sql oracle subquery correlated-subquery