How To Find Second Highest Salary In Sql

SQL Programming

Hey there! Today, I want to share with you my experience and insights on how to find the second highest salary in SQL. As someone who has worked extensively with databases and SQL queries, I’ve encountered various scenarios where finding the second highest salary is crucial for data analysis and decision-making. So, let’s dive right in!

Understanding the Problem

Before we start writing the SQL query, let’s first understand the problem at hand. Finding the second highest salary in a database table involves sorting the salaries in descending order and then selecting the second highest value from that sorted list.

The SQL Query

To find the second highest salary, we’ll use the SELECT statement along with the ORDER BY and LIMIT clauses. Here’s the SQL query:

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

Let's break down the query to understand what's happening:

  • SELECT MAX(salary) AS second_highest_salary: This selects the maximum salary from the table and aliases it as second_highest_salary.
  • WHERE salary < (SELECT MAX(salary) FROM employees): This filters the rows where the salary is less than the maximum salary in the table.

By using the LIMIT clause, we make sure that only the second highest salary is returned. If you want to find the third or fourth highest salary, you can modify the query accordingly.

Personal Touch

While the above query is a straightforward and efficient way to find the second highest salary, it's important to consider the context and requirements of your specific scenario.

For instance, if you're working with a large dataset, you might want to optimize the query by creating an index on the salary column to improve performance. Additionally, if there are duplicate salaries in the table, the query as it is might return incorrect results. In such cases, you can modify the query to handle duplicates appropriately.


In this article, we explored how to find the second highest salary in SQL. By using the MAX function with the WHERE clause, we were able to filter the rows and retrieve the second highest salary. However, remember to consider the specific requirements of your scenario and make any necessary modifications to the query.

Thanks for reading! I hope this article has been helpful in expanding your SQL knowledge. If you have any questions or comments, feel free to reach out. Happy coding!