177. Nth Highest Salary (Medium)

Posted sixu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了177. Nth Highest Salary (Medium)相关的知识,希望对你有一定的参考价值。

Source: https://leetcode.com/problems/nth-highest-salary/#/description
Description:

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, then the query should return null.

+------------------------+
| getNthHighestSalary(2) |
+------------------------+
| 200 |
+------------------------+

 

Solution:

CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
  RETURN (
        select DISTINCT SALARY from (
            select u1.id,u1.salary,u2.jishu from 
            (select * from Employee)u1
            inner join
            (
                select t1.id, count(*) as jishu from
                (
                    select e1.id,e1.salary from
                        (select salary,min(id) as id from Employee group by salary) e1
                        inner JOIN
                        (select salary,min(id) as id from Employee group by salary)e2
                        on e1.salary <= e2.salary
                )t1
                group by t1.id
            ) u2
            on u1.id = u2.id
        )p
        where p.jishu =N

  );
END

 

以上是关于177. Nth Highest Salary (Medium)的主要内容,如果未能解决你的问题,请参考以下文章

177. Nth Highest Salary

177. Nth Highest Salary

sql 177. Nth Highest Salary(1st).sql

sql 177. Nth Highest Salary(1st).sql

sql 177. Nth Highest Salary(1st).sql

sql 177. Nth Highest Salary(1st).sql