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 查找每个部门的第二高薪水

[LeetCode] Nth Highest Salary 第N高薪水

第一高薪水

获取薪水第二高的员工姓名[重复]

需要解释在同一列上进行自联接查询的工作[重复]