How To Find Second Highest Salary In SQL?

`SELECT MAX(salary) AS second_highest_salary FROM employees WHERE salary < (SELECT MAX(salary) FROM employees);`

`SELECT DISTINCT salary AS second_highest_salary FROM employees ORDER BY salary DESC LIMIT 1 OFFSET 1;`

`SELECT salary AS second_highest_salary FROM (SELECT salary, DENSE_RANK() OVER (ORDER BY salary DESC) AS rnk FROM employees) t WHERE rnk = 2;`

`SELECT salary AS second_highest_salary FROM (SELECT salary, ROW_NUMBER() OVER (ORDER BY salary DESC) AS rn FROM (SELECT DISTINCT salary FROM employees) s) t WHERE rn = 2;`

Suggested for You

Trending Today