
下記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)
No.1ベストアンサー
- 回答日時:
having節は、GroupByで指定したものに対する条件式だからですね。
この場合は、副問い合わせが正解だと思います。
この回答への補足
回答ありがとうございました。
調べていくと原因は分かりました。
表を変えましたが、avg(sal) < salと列名を指定するとエラーになるようです。一番下にある数字を指定した場合、エラーになりません。
これはどうしてでしょうか?
回答のほどよろしくお願い致します。
1 select empno
2 from emp
3 group by empno
4* having avg(sal) < sal
5 /
having avg(sal) < sal
*
行4でエラーが発生しました。:
ORA-00979: GROUP BYの式ではありません。
1 select empno
2 from emp
3 group by empno
4* having avg(sal) < comm
SQL> /
having avg(sal) < comm
*
行4でエラーが発生しました。:
ORA-00979: GROUP BYの式ではありません。
SQL> ed
file afiedt.bufが書き込まれました。
1 select empno
2 from emp
3 group by empno
4* having avg(sal) < 100
SQL> /
レコードが選択されませんでした。
SQL> desc emp;
名前 NULL? 型
----------------------------------------- -------- ----------------------------
EMPNO NOT NULL NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NOT NULL NUMBER(2)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ORA-01013のエラーについて経験...
-
CASE文のエラーについて
-
はじめまして!
-
PL/SQL PLS-00103エラーについて
-
ORA-01843: 指定した月が無効で...
-
pro*c で pl/sql に変数を渡す...
-
PL/SQLによるCREATE TABLE後のI...
-
無効なSQL文の具体例を教えてく...
-
マテリアライズドビューの更新...
-
「ORA-00907: 右カッコがありま...
-
ビューが作成できない
-
dmpファイルのインポート時にで...
-
PCC-S-02201エラーの対処を教え...
-
PL/PCLでORA-06502のエラー
-
トリガーのエラー
-
PL/SQLでPLS-00201のエラー
-
Oracle9 union使用時の結合制限...
-
ORA-14459: GLOBALキーワードが...
-
ORACLEのUPDATE処理
-
PL/SQL ストアドプロシージャ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ORA-01013のエラーについて経験...
-
CASE文のエラーについて
-
はじめまして!
-
PL/SQL PLS-00103エラーについて
-
「ORA-00907: 右カッコがありま...
-
ORA-01843: 指定した月が無効で...
-
ORA-06502のエラー
-
PCC-S-02201エラーの対処を教え...
-
シェルスクリプトでオラクルの...
-
PL/SQLによるCREATE TABLE後のI...
-
DATABSE LINKについて
-
PL/SQLのコンパイルエラーにつ...
-
エラーコードについて
-
SQLLOADER
-
sqlのエラーハンドリングについ...
-
ビューが作成できない
-
データベースのカラムの型がCHA...
-
ORA-12571パケット書き込みエラ...
-
PL-SQLでORA-01013エラー
-
PL/SQLでPLS-00201のエラー
おすすめ情報