我有一个名为employees的oracle sql表。我要做的是返回所有员工的部门ID和最低工资,按分组 部门ID,最低工资大于最低工资 部门ID不等于50的员工。
这就是我提出的:
select department_id, min(salary)
from employees where min(salary)>(select min(salary) from employees
where department_id!=50)
group by department_id;
Oracle给我错误:ORA-00934:此处不允许使用组功能
任何人都知道为什么会这样?
答案 0 :(得分:2)
由于您使用聚合函数进行过滤,因此需要将该代码放在HAVING
子句中。您不能在WHERE
子句中使用聚合函数:
select department_id, min(salary)
from employees
group by department_id
having min(salary)>(select min(salary)
from employees
where department_id!=50)