2022-11-21:第N高的薪水。表结构和数据的sql语句如下。请问sql语句如何写?
2022-11-21:第N高的薪水。表结构和数据的sql语句如下。请问sql语句如何写?
DROP TABLE IF EXISTS employee;
CREATE TABLE employee (
id int(11) NOT NULL,
salary int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO employee VALUES ('1', '100');
INSERT INTO employee VALUES ('2', '200');
INSERT INTO employee VALUES ('3', '300');
需要写的函数如下:
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
RETURN (
# 在这里写sql语句
);
END
答案2022-11-21:
sql语句如下:
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 N, 1
);
END
select getNthHighestSalary(2);
执行结果如下:
本作品采用《CC 协议》,转载必须注明作者和本文链接
为嘛不用窗口函数呢?