您的位置:首页 > 数据库 > MySQL

返回第N大的数--Mysql(学习)

2016-06-22 20:05 435 查看
最近在做leetcode上数据库的题,如何返回第N大的值。题目如下:

Write a SQL query to get the nth highest salary from the Employee table.

+----+--------+
| Id | Salary |
+----+--------+
| 1  | 100    |
| 2  | 200    |
| 3  | 300    |
+----+--------+


解答代码:

CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
SET N=N-1;
RETURN (
# Write your MySQL query statement below
select
Salary
from Employee
group by Salary
order by Salary desc limit 1 offset N
);
END


主要知识点:

limit的使用方法,limit n返回前n条记录,limit n offest m从m+1条记录开始返回n条记录 。代码中使用group by Salary的作用是去重,对于大数据查询时使用group by去重比distinct的效率要高一些。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: