题目描述:
编写一个 SQL 查询,获取 Employee 表中第 n 高的薪水(Salary)。
例如上述 Employee 表,n = 2 时,应返回第二高的薪水 200。如果不存在第 n 高的薪水,那么查询应返回 null。
方法1:
主要思路:
(1)使用group进行去重分组,再将分组后的降序处理,使用limit返回对应的值;
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
set N:=N-1;
RETURN (
# Write your MySQL query statement below.
select
Salary
from
Employee
group by
Salary
order by
Salary desc
limit N , 1
);
END
方法2:
主要思路
(1)使用distinct进行去重处理,然后进行降序处理,使用limit返回对应的值;
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
set N:=N-1;
RETURN (
# Write your MySQL query statement below.
select distinct
Salary
from
Employee
order by
Salary desc
limit N , 1
);
END