问题描述
我的(斯科特)目标是使用相关子查询来获取经理的姓名,工资和部门名称。 如下所示,我可以得到预期的结果,但是类似的子查询已经使用了几次。 还有另一种整洁的方式(没有重复以下类似的模式)?
SELECT
O.ENAME EMP_NAME,(SELECT disTINCT FirsT_VALUE(I.ENAME) OVER (PARTITION BY NULL ORDER BY I.SAL DESC)
FROM SCott.EMP I
WHERE I.EMPNO=O.MGR --correlated to outer
) AS MGR_NAME,(SELECT disTINCT FirsT_VALUE(I.SAL) OVER (PARTITION BY NULL ORDER BY I.SAL DESC)
FROM SCott.EMP I
WHERE I.EMPNO=O.MGR --correlated to outer
) AS MGR_SAL,(SELECT disTINCT FirsT_VALUE(I.DEPTNO) OVER (PARTITION BY NULL ORDER BY I.SAL DESC)
FROM SCott.EMP I
WHERE I.EMPNO=O.MGR --correlated to outer
) AS MGR_DEPTNO
from SCott.EMP O;