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

Read More

Git Tutorial

【2021-02-21】Git command quick reference - including reset, diff, checkout, stash and more