2013-04-02 76 views
1

我在oracle sql上有一个名为employees的表。我想要做的是返回所有员工的部门编号和最低工资,按 部门编号分组,其最低工资大于部门编号不等于50的那些员工的最低工资 。单行子查询错误

这是我想出了:

select department_id, min(salary) 
from employees where min(salary)>(select min(salary) from employees 
where department_id!=50) 
group by department_id; 

甲骨文是给我的错误:ORA-00934:组功能在这里不允许使用

任何人有任何想法,为什么发生这种情况?

回答

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) 
+0

拍摄,我什至没有想到!谢谢一堆! – Yoyoyo