美文网首页
LeetCode176——第二高的薪水

LeetCode176——第二高的薪水

作者: Zzz_CH | 来源:发表于2019-06-19 11:36 被阅读0次

题目描述

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

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

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

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

思路

  1. 排序,取出排名第二的值
select Salary from Employee
  order by Salary desc
  limit 1, 1;
  1. group by 过滤掉相同薪水
select Salary from Employee
  group by Salary
  order by Salary desc
  limit 1, 1;
  1. 当不存在第二高的薪水时,会返回空而不是 null,做个是否为 null 的判断
select
  ifnull(
    (select Salary from Employee group by Salary order by Salary desc limit 1, 1),
    null
  ) as SecondHighestSalary;

可以简写为

select 
  (select Salary from Employee group by Salary order by Salary desc limit 1, 1)
  as SecondHighestSalary;

相关文章

  • LeetCode176——第二高的薪水

    题目描述 编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 。 例如上述 Empl...

  • 记录几条有用的sql

    获取第二高的薪水 获取第N高的薪水 分数排名 获取部门前3高的薪水 (分组排序取每组前3) 获取部门的最高薪水(...

  • LeetCode#[SQL] 176 第二高的薪水

    第二高的薪水 题目 编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 。 例如上述...

  • 【2020-02-25】leetcode sql

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

  • 第二高的薪水

    需注意的点 题目要求不存在返回null,则用ifnull函数ifnull(A,B) 若不为空返回A,否则返回B可能...

  • D8-leetcode176、第二高的薪水(简单)

    https://leetcode-cn.com/u/zhaoyqiu/ 176、第二高的薪水(1)按照薪水降序进行...

  • 第N高的薪水和排名问题

    求第二高的薪水和第N高的薪水没有区别,主要注意的是若有相同的薪水的时候后面是否跳过,这里使用了子查询。这里的是相同...

  • 每日Leetcode—SQL(2)

    177.第N高的薪水 方法: 分析:此题可以参照(176.第二高的薪水)的思路来解题,176中使用了limit 1...

  • sql:如何查找第N高的数据

    题目: 编写一个 SQL 查询,获取Employee表中第二高的薪水(Salary)。 分析: 1、查询第二高的薪...

  • SQL训练题

    组合两个表 第二高的薪水 第N高的薪水 分数排名 连续出现的数字 超过经理收入的员工 查找重复的电子邮箱 从不订购...

网友评论

      本文标题:LeetCode176——第二高的薪水

      本文链接:https://www.haomeiwen.com/subject/shphqctx.html