トップページ >  Oracle SQL >  where句でグループ関数は使用できない
初版2006/08/09: 最終更新日2006/08/09
  where句でグループ関数は使用できない
目次
where句でグループ関数は使用できない
where句でグループ関数は使用できない
グループ関数(avg,sumなどなど)はwhere句では使用することが出来ません。以下、SQLはエラーになります。
select class,avg(english)
from   test
where  avg(english) > 60
group by class;

クラスごとで、英語の平均点が60点以上のクラスを取得するSQLですが、 「ORA-000934:ここではグループ関数は使用できません。」 というエラーが返ってきます。

では、どこで条件を指定するかというと having句 で指定します。
上記SQLのwhereをhavingに変更します

select class,avg(english)
from   test
having avg(english) > 60
group by class;

するとSQLは意図したとおりに実行されます。グループ関数はselect句やhaving句、order by句で使用できるのです。