How to find nth highest salary using SQL query

This is a common SQL question which will be asked in most of the interviews and also if you are working related to the financial application then most of them would have come across this scenario where you need to find Nth highest salary using SQL query or finding nth highest expenditure or something like that.

There are several ways to achieve this functionality lets look at all the possible ways.

SQL Query to find the highest salary of an employee:

Select Max(Salary) from Employees

SQL query to find 2nd Highest salary in the employee table using subquery

Select Max(Salary) from Employees where Salary < (Select Max(Salary) from Employees)

SQL query to find nth highest salary in the employee table using subquery

 SELECT TOP 1 SALARY
FROM (
      SELECT DISTINCT TOP N SALARY
      FROM EMPLOYEES
      ORDER BY SALARY DESC
      ) RESULT
ORDER BY SALARY
// Replace the N with the highest number which you need to find.

 find nth highest salary using SQL query in the employee table using CTE

 WITH RESULT AS
(
    SELECT SALARY,
           DENSE_RANK() OVER (ORDER BY SALARY DESC) AS DENSERANK
    FROM EMPLOYEES
)
SELECT TOP 1 SALARY
FROM RESULT
WHERE DENSERANK = N

DENSE_RANK() will give you all the employees who have the Nth highest salary – no matter how many employees have the (identical) highest salary.

Leave a Reply

Your email address will not be published. Required fields are marked *

Sign Up for Our Newsletters

Subscribe to get notified of the latest articles. We will never spam you. Be a part of our ever-growing community.

You May Also Like