1

私は従業員と呼ばれる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: グループ機能はここでは許可されていません

なぜこれが起こっているのか誰にも分かりますか?

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 に答える