Find the Second Highest Salary

Find the second highest salary from the Employees table.

SELECT MAX(Salary) AS SecondHighestSalary
FROM Employees
WHERE Salary < (
    SELECT MAX(Salary)
    FROM Employees
);

Better Window Function Version

WITH SalaryRanks AS (
    SELECT 
        Salary,
        DENSE_RANK() OVER (ORDER BY Salary DESC) AS rnk
    FROM Employees
)
SELECT Salary
FROM SalaryRanks
WHERE rnk = 2;


Topics