查询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。