select max(salary)
from employ
where salary < ( select max(salary)
from employ
having count(max(salary)>salary)=3);
这里我试图在聚合函数中使用聚合函数找出第4个最大工资。它显示错误无效使用组函数。
有什么问题?请帮忙
谢谢。答案 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;