Problem 177: Nth Highest Salary
Categories: LeetCode-DataBase
177. Nth Highest Salary
Write a SQL query to get the nth highest salary from the Employee table.
| Id | Salary |
|---|---|
| 1 | 100 |
| 2 | 200 |
| 3 | 300 |
For example, given the above Employee table, the nth highest salary where n = 2 is 200. If there is no nth highest salary, the query should return null.
| getNthHighestSalary(2) |
|---|
| 200 |
SQL script:
Create table If Not Exists Employee (Id int, Salary int);
Truncate table Employee;
insert into Employee (Id, Salary) values (1, 100);
insert into Employee (Id, Salary) values (2, 200);
insert into Employee (Id, Salary) values (3, 300);
Solution
Solution 1:
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
SET N := N - 1;
RETURN (
# Write your MySQL query statement below.
SELECT (SELECT DISTINCT Salary FROM Employee ORDER BY Salary DESC LIMIT N, 1)
);
END
If you encounter errors running this directly in MySQL, refer to: DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled