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 协议》,转载必须注明作者和本文链接
微信公众号:福大大架构师每日一题。最新面试题,涉及golang,rust,mysql,redis,云原生,算法,分布式,网络,操作系统。
讨论数量: 1

为嘛不用窗口函数呢?

2周前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!