下記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で質問しましょう!
似たような質問が見つかりました
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 日本の全市区町村を人口密度が低 1 2023/06/18 19:51
- PHP php テーブルが作成できない 1 2022/11/17 23:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PCC-S-02201エラーの対処を教え...
-
グループ関数のエラーについて
-
ORA-01013のエラーについて経験...
-
PL/SQLのコンパイルエラーにつ...
-
SQLLOADER
-
ORA-06502のエラー
-
DOSプロンプトとコマンドプロン...
-
ARCserveでのリストアができない
-
HDDの代替領域のサイズについて
-
DB(oracle)のフルバック容量...
-
SQL実行結果の出力を見やすくし...
-
4GB = 4096MB ではない?
-
新バージョンのDMPを旧バージョ...
-
pl/sqlでselect文の結果をCSV出...
-
なぜ再起動すると空き領域が増...
-
SQL*Plus:SPOOLコマンドでのSQ...
-
Excel2013VBAでフリーソフト「...
-
どうしてpn接合ではp領域とn領...
-
ARCserve Agent for Oracleでの...
-
SQL ServerのストアドでOUTPUT...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ORA-01013のエラーについて経験...
-
CASE文のエラーについて
-
PL/SQLのコンパイルエラーにつ...
-
「ORA-00907: 右カッコがありま...
-
PL/SQL PLS-00103エラーについて
-
はじめまして!
-
SQLLOADER
-
シェルスクリプトでオラクルの...
-
ORA-06502のエラー
-
DATABSE LINKについて
-
ORA-01843: 指定した月が無効で...
-
ACCESSでパススルークエリにパ...
-
PCC-S-02201エラーの対処を教え...
-
ストアドファンクションの実行
-
pro*c で pl/sql に変数を渡す...
-
PL/SQLでPLS-00201のエラー
-
データベースのカラムの型がCHA...
-
PL/SQLによるCREATE TABLE後のI...
-
HAVING句でのBETWEEN演算子
-
無効なSQL文の具体例を教えてく...
おすすめ情報