Second Highest Salary
LeetCode 176 | Difficulty: Mediumβ
MediumProblem Descriptionβ
Table: Employee
+-------------+------+
| Column Name | Type |
+-------------+------+
| id | int |
| salary | int |
+-------------+------+
id is the primary key (column with unique values) for this table.
Each row of this table contains information about the salary of an employee.
Write a solution to find the second highest distinct salary from the Employee table. If there is no second highest salary, return null (return None in Pandas).
The result format is in the following example.
Example 1:
Input:
Employee table:
+----+--------+
| id | salary |
+----+--------+
| 1 | 100 |
| 2 | 200 |
| 3 | 300 |
+----+--------+
Output:
+---------------------+
| SecondHighestSalary |
+---------------------+
| 200 |
+---------------------+
Example 2:
Input:
Employee table:
+----+--------+
| id | salary |
+----+--------+
| 1 | 100 |
+----+--------+
Output:
+---------------------+
| SecondHighestSalary |
+---------------------+
| null |
+---------------------+
Topics: Database
Solutionsβ
Solution 1: MySQL (Best: 110 ms)β
| Metric | Value |
|---|---|
| Runtime | 110 ms |
| Memory | N/A |
| Date | 2018-04-12 |
Solution
# Write your MySQL query statement below
select max(Salary) as SecondHighestSalary from Employee
where Salary not in (select max(Salary) as maxsal from Employee)
order by Salary desc
Complexity Analysisβ
| Approach | Time | Space |
|---|---|---|
| Solution | $O(n)$ | $O(1) to O(n)$ |
Interview Tipsβ
Key Points
- Discuss the brute force approach first, then optimize. Explain your thought process.