zoukankan      html  css  js  c++  java
  • leetcode-Second Highest Salary

    Write a SQL query to get the second highest salary from the Employee table.

    +----+--------+
    | Id | Salary |
    +----+--------+
    | 1  | 100    |
    | 2  | 200    |
    | 3  | 300    |
    +----+--------+
    

    For example, given the above Employee table, the second highest salary is 200. If there is no second highest salary, then the query should return null.


    思路:

    如果是选出所有Salary中最大的,语句是:

    select max(Salary)
    from Employee
    

    (*)

    //

    第二种方法,用到两个核心知识点:

    select 
    case 
    when count(Salary) > 1
    then (
        select distinct Salary
        from Employee
        order by Salary desc
        limit 1,1
    )
    else null
    end 
    from Employee
    

    (1)case when

    (2)limit

    limit m,n的含义是从选出该列从第m行开始的n行数元组

    如果写个Select * from table limit 5, 10,很难一样就看出来到底哪个是limit,哪个是offset。我觉得应该尽量避免这种写法,需要offset的,就采用严谨的Select * from table limit 10 offset 5这样的格式;对于offset是0的,则直接省略,就写Select * from table limit 10好了。

    //

    理解了(*),那么第二大的就是在除去最大的Salary中选择最大的Salary

    同样的道理,我们可以选出第三大的和第四大的etc.

    选择第三大的代码如下:

    select max(Salary)
    from Employee
    where salary < (
         select max(Salary)
         from Employee
         where Salary <>
          (selcet max(Salary) from Employee)
    )
    

     或者是:

    select max(Salary)
    from Employee
    where Salary <> (
    select max(Salary)
    from Employee
    )
    and Salary <>(
    select max(Salary)
    from Employee
    where Salary<>(select max(Salary) from Employee) 
    )
    

    select max(Salary)
    from Employee
    where Salary < (select max(Salary) from Employee)
    
  • 相关阅读:
    Chapter1-data access reloaded:Entity Framework(上)
    Part1-Redefining your data-access strategy 重新定义你的数据访问策略
    ora-12541无监听的一种场景
    GridView根据一列自动计算(转载)
    百度Fex webuploader.js上传大文件失败
    JS文件中引用另一个JS文件
    连接虚拟机的SQLServer
    Spring中Bean的生命周期
    Spring中Bean的作用范围调整
    Spring中三种创建Bean对象的方式
  • 原文地址:https://www.cnblogs.com/immortal-worm/p/5078809.html
Copyright © 2011-2022 走看看