题目
编写一个 SQL 查询,获取 Employee 表中第 n 高的薪水(Salary)。
例如上述 Employee 表,n = 2 时,应返回第二高的薪水 200。如果不存在第 n 高的薪水,那么查询应返回 null。
解题思路
根据salary去重(distinct)降序排序(order by salary desc),然后找出第n-1行即可。
代码如下
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
Set N = N -1;
RETURN (
select distinct salary from employee
order by salary desc
limit 1 offset N
);
END
提交结果
成功
显示详情
执行用时 : 327 ms, 在Nth Highest Salary的MySQL提交中击败了89.32% 的用户
内存消耗 : N/A