我们可以在聚合函数中使用聚合函数吗?

时间:2015-05-02 08:10:57

标签: mysql sql database

select max(salary)
from employ
where salary < ( select max(salary)
                 from employ
                 having count(max(salary)>salary)=3);

这里我试图在聚合函数中使用聚合函数找出第4个最大工资。它显示错误无效使用组函数。

有什么问题?请帮忙

谢谢。

2 个答案:

答案 0 :(得分:2)

不,你不能这样做。相反,您可以按降序排列salary limit,然后select min(salary) from ( select max(salary) as salary from employ order by salary desc limit 4) 将结果记录到4条记录并检索最小记录:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\Facades\System.Runtime.dll

答案 1 :(得分:2)

最简单的方法是使用limit

select max(salary) as salary
from employ
order by salary desc
limit 3, 1;