176.【中等】第二高的薪水.md
文章发布较早,内容可能过时,阅读注意甄别。
# 题目
编写一个 SQL 查询,获取 Employee 表中第 n 高的薪水(Salary)。
+----+--------+
| Id | Salary |
+----+--------+
| 1 | 100 |
| 2 | 200 |
| 3 | 300 |
+----+--------+
1
2
3
4
5
6
7
2
3
4
5
6
7
例如上述 Employee 表,n = 2 时,应返回第二高的薪水 200。如果不存在第 n 高的薪水,那么查询应返回 null。
+------------------------+
| getNthHighestSalary(2) |
+------------------------+
| 200 |
+------------------------+
1
2
3
4
5
2
3
4
5
# 分析
# 题解
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
set n = N - 1;
RETURN (
# Write your MySQL query statement below.
SELECT (
SELECT DISTINCT Salary FROM Employee
ORDER BY Salary DESC limit n, 1
) AS
SecondHighestSalary
);
END
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
上次更新: 2024/03/07, 20:33:54