--查找同一个部门经理下面empno最大的那条record
SELECT T1.*
FROM EMP T1
WHERE T1.EMPNO = (SELECT MAX(T2.EMPNO) FROM EMP T2 WHERE T1.MGR = T2.MGR)
ORDER BY T1.MGR;
上面的可以使用over(partition by...),获取max(EMPNO),这样写法大大优化性能,数据量越大,效果越明显
WITH EMP_W AS(
SELECT TP.*, MAX(EMPNO) OVER(PARTITION BY MGR) MAX_EMPNO
FROM EMP TP
WHERE TP.MGR IS NOT NULL)
SELECT * FROM EMP_W A WHERE A.EMPNO = A.MAX_EMPNO ORDER BY A.MGR;