zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    第十周作业
    第九周作业
    软件工程作业2
    自我介绍
    2019学习总结
    第二周作业
    十二周
    十一周
    第十周作业
    第九周作业
  • 原文地址:https://www.cnblogs.com/sixu/p/6884741.html
Copyright © 2011-2022 走看看