質問: グループ関数のエラーについて 下記sqlを実行するとエラーが返ってきます。 構文は合っていると思うのですが何故でしょうか。 1 select nation 2 from nation 3 group by nation 4* having area > avg(area) sql> / having area > avg(area) * 行4でエラーが発生しました。: ora-00979: group byの式ではありません。 副問合せをするとうまくいきました。 1 select nation 2 from nation 3* where area >(select avg(area) from nation) どちらの方法も同じ考え方だと思うのですが、上のやり方でエラーが出る理由を教えてほしいです。 回答のほどよろしくお願い致します。 sql> desc nation; 名前 null? 型 ----------------------------------------- -------- ---------------------------- code not null number(5) nation not null varchar2(28) capital varchar2(20) area number(22) population number(22)
回答: having節は、groupbyで指定したものに対する条件式だからですね。 この場合は、副問い合わせが正解だと思います。