[LeetCode-SQL]177. 第N高的薪水(SQL)order by + limit
1. 题目
2. 读题(需要重点注意的东西)
思路(order by + limit):
- 去重 distinct
- 升序排序 order by [字段] desc
- 分页取值 limit 1,1 # 从第2个数据(下标为1)开始,显示1条
- 别名 as
3. 解法
---------------------------------------------------解法---------------------------------------------------
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
set n = n - 1; # 注意这里要定义变量传参进来
RETURN (
# Write your MySQL query statement below.
select ifnull((
select distinct salary # 去重
from Employee
order by salary desc # 降序排序
limit n,1 # 从第n高的薪水开始输出1条数据
),null) as getNthHighestSalary # 别名
);
END
可能存在的问题:
4. 总结