1

我在 oracle sql 上有一个名为employees 的表。我要做的是返回所有员工的部门 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: group function is not allowed here

有人知道为什么会这样吗?

4

1 回答 1

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)
于 2013-04-02T17:50:59.593 回答