思路非常简单,对工资进行排序(升序),取第N行
考察点:
1.limit offset用法
代码示例:
select * from student limit 9,4
slect * from student limit 4 offset 9
// 语句1和2均返回表student的第10、11、12、13行
//语句2中的4表示返回4行,9表示从表的第十行开始
2.是工资的第N位,所以需要在select了工资列之后用group by
3.行号从0起,因而我们需要选择的行号为N-1
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS int
BEGIN
SET N = N - 1;
RETURN (
SELECT Salary FROM Employee GROUP BY Salary ORDER BY Salary DESC limit 1 offset N
);
END
网友评论