力扣题目-177. 第N高的薪水
仅作学习,不作他用
题干
表: Employee
Column Name | Type |
---|---|
id | int |
salary | int |
在 SQL 中,id 是该表的主键。
该表的每一行都包含有关员工工资的信息。
查询 Employee 表中第 n 高的工资。如果没有第 n 个最高工资,查询结果应该为 null 。
查询结果格式如下所示。
示例 1:
输入:
Employee table:
id | salary |
---|---|
1 | 100 |
2 | 200 |
3 | 300 |
n = 2
输出:
select getNthHighestSalary(2) result: 200
示例 2:
输入:
Employee 表:
id | salary |
---|---|
1 | 100 |
n = 2
输出:
select getNthHighestSalary(2) result: null
答案
官方答案
暂无
其他有意思的答案
我的答案
2024年2月18日
第一次回答
第一次尝试:先尝试用sql语句实现,然后再将语句放入自定义函数;发现当到出现两个100的用例时,语句报错
第二次尝试:再原先的基础上新增DISTINCT ,这是因为我一开始理解有误了。应该是薪水,而我理解的时候没有排除人数的干扰。
第三次尝试:新增了READS SQL DATA
CREATE FUNCTION getNthHighestSalary ( N INT )
RETURNS INT
READS SQL DATA
BEGINDECLARE M INT;set M= N-1;RETURN (SELECT DISTINCT salary FROM employee ORDER BY salary DESC LIMIT M,1);
END