Oracle
 sql >> Base de données >  >> RDS >> Oracle

Sélectionnez EMP avec SAL max de chaque DEPT

Vous pouvez également utiliser la fonction analytique 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