查询mysql表中第N大的数

CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
   set N = N-1;
  RETURN (
      select ifnull((select Salary from  Employee group by  Salary order by  Salary desc 
      limit N,1),null)  getNthHighestSalaryN
  );
END
如果是已经确定的N,直接
select ifnull((select distinct Salary from Employee order by Salary desc limit 8,1),null) 第9大的数
group by 的目的是用来进行聚合统计的,虽然也可能实现去重的功能,但这并不是它的长项。
单纯只是去重用distinct。
posted @ 2020-10-11 20:38  今夜明珠色  阅读(320)  评论(0编辑  收藏  举报