• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Acceml
V2EX  ›  程序员

[Leetcode] 176. 第二高的薪水

  •  
  •   Acceml ·
    Acceml · Nov 6, 2018 · 4481 views
    This topic created in 2920 days ago, the information mentioned may be changed or developed.

    题目

    编写一个 SQL 查询,获取 Employee 表中第二高的薪水( Salary ) 。

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

    例如上述 Employee 表,SQL 查询应该返回 200 作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null。

    +---------------------+
    | SecondHighestSalary |
    +---------------------+
    | 200                 |
    +---------------------+
    

    题解

    这个题目求第二高的,而我们的 sql 语句中只有 max 这个关键字求最高的。那么利用最高的这个转化一下就可以了.

    select max(Salary) as SecondHighestSalary 
    from Employee 
    where
    Employee.Salary < (select max(Salary) from Employee);
    

    热门阅读

    Leetcode 名企之路

    14 replies  •  2018-11-07 16:10:08 +08:00
    TuringGooner
    TuringGooner
    Nov 6, 2018
    1
    如果我要第三高或者第四高的薪水呢,性能就太差了吧

    这个方法是不是通用性差了点
    awah
    awah
    Nov 6, 2018 via Android
    2
    不能 order by 之后 offset limit 取吗?
    cissoid
    cissoid
    Nov 6, 2018❤️1
    3
    SELECT IF(
    EXISTS(SELECT Salary FROM Employee GROUP BY Salary ORDER BY Salary DESC LIMIT 1, 1),
    (SELECT Salary FROM Employee GROUP BY Salary ORDER BY Salary DESC LIMIT 1, 1),
    null
    ) AS SecondHighestSalary;
    behanga
    behanga
    Nov 6, 2018
    4
    @luguhu offset limit 无法区分有多个相同第二高薪水的情况
    mahone3297
    mahone3297
    Nov 6, 2018
    5
    mysql8 窗口函数
    petelin
    petelin
    Nov 6, 2018❤️1
    6
    @behanga 先去重不行?
    MartinWu
    MartinWu
    Nov 6, 2018
    7
    @TuringGunner #1 你为什么会觉得通用跟高性能可以并存?
    littlewing
    littlewing
    Nov 6, 2018
    8
    这个并不通用,也不高性能啊
    lispmacro
    lispmacro
    Nov 6, 2018
    9
    select distinct(salary) from employee where rownum = 2; oracle 里这个应该可以吧?
    takato
    takato
    Nov 6, 2018 via iPhone
    10
    绝大多数情况下,时间都是要拿空间换的.....
    20015jjw
    20015jjw
    Nov 6, 2018
    11
    我看 lz 每次发帖都被喷 挺可怜
    好奇 lz 在哪个名企
    SukkaW
    SukkaW
    Nov 6, 2018❤️1
    12
    @20015jjw 他小米的
    20015jjw
    20015jjw
    Nov 6, 2018
    13
    @SukkaW 小米不考算法么?
    talen666
    talen666
    Nov 7, 2018
    14
    @20015jjw 这帖还好吧 只看到讨论 也没看到喷的啊
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1378 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 20:19 · PVG 04:19 · LAX 12:19 · JFK 15:19
    ♥ Do have faith in what you're doing.