单行子查询错误

时间:2013-04-02 17:49:38

标签: oracle

我有一个名为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:此处不允许使用组功能

任何人都知道为什么会这样?

1 个答案:

答案 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)