首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sql从表中获取第N个最高工资

问sql从表中获取第N个最高工资
EN

Stack Overflow用户
提问于 2015-01-12 00:26:18
回答 1查看 588关注 0票数 0

编写一个SQL查询,从Employee表中获得第n个最高工资。

代码语言:javascript
复制
+----+--------+
| Id | Salary |
+----+--------+
| 1  | 100    |
| 2  | 200    |
| 3  | 300    |
+----+--------+

例如,给定上面的Employee表,n=2的第n个最高工资是200。如果没有第n个最高工资,则查询应返回null。

我的答案

代码语言:javascript
复制
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
  RETURN (

      # Write your MySQL query statement below.
    SELECT Salary FROM Employee ORDER BY Salary DESC LIMIT N-1, 1

  );
END

错误:

代码语言:javascript
复制
Runtime Error Message:  Line 6: SyntaxError: near '-1, 1 ); END'
Last executed input:    {"headers": {"Employee": ["Id", "Salary"]}, "argument": 1, "rows": {"Employee": [[1, 100]]}}
EN

回答 1

Stack Overflow用户

发布于 2015-01-12 00:51:20

代码语言:javascript
复制
DELIMITER $
CREATE FUNCTION salarynth(n1 INT)
  RETURNS INT
   DETERMINISTIC
    BEGIN  
     DECLARE myvar INT;  
     SELECT 
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(group_concat(salary order by id),','), ',', n1),',',-1) INTO myvar FROM t;
     RETURN myvar;
    END$
DELIMITER ;


SELECT `salarynth`('3');

300
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27889343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档