Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Selecione EMP com SAL máximo de cada DEPT


Você também pode usar a função analítica RANK():
SELECT * FROM (
  SELECT
    Dept.DeptNo,
    Dept.DName,
    Emp.EName,
    Emp.Sal,
    RANK() OVER (PARTITION BY Dept.DeptNo ORDER BY Emp.Sal DESC) AS DeptSalRank
  FROM Emp
  INNER JOIN Dept ON Emp.DeptNo = Dept.DeptNo
)
WHERE DeptSalRank = 1