mysql 第二高薪水
Posted 逆水行舟,不进则退
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 第二高薪水相关的知识,希望对你有一定的参考价值。
编写一个 SQL 查询,获取 Employee
表中第二高的薪水(Salary)
+----+--------+ | Id | Salary | +----+--------+ | 1 | 100 | | 2 | 200 | | 3 | 300 | +----+--------+
例如上述 Employee
表,SQL查询应该返回 200
作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null
。
+---------------------+ | SecondHighestSalary | +---------------------+ | 200 | +---------------------+
刚一看题目,觉得很简单的,可是做了一下之后才发现很多细节都没考虑,特此记录下来
select (select distinct Salary from Employee order by Salary desc limit 1,1)as SecondHighestSalary
或
select (select distinct Salary from Employee order by Salary desc limit 1 offset 1)as SecondHighestSalary
limit限制结果范围
SELECT * FROM Employee LIMIT 0,1; SELECT * FROM Employee LIMIT 1 OFFSET 0; SELECT * FROM products LIMIT 1;
“0”: 代表数据获取的起始位置.(0代表第一条记录,以此递增)
“1”: 期望获取的记录条数.
当获取的记录是从第一条开始则可以省略书写起始位置 “0”
以上是关于mysql 第二高薪水的主要内容,如果未能解决你的问题,请参考以下文章
[LeetCode] Second Highest Salary 第二高薪水
使用 hive 中的 rank/dense_rank 查找每个部门的第二高薪水