以下のように表示されます。
(日本語)
ORA-00979: GROUP BYの式ではありません。
(英語)
ORA-00979: Not a GROUP BY Expression
発生パターン
このエラーは以下のような場合に発生します。
- GROUP BY句があるSQLで、GROUP BYに指定していない列をSELECTに指定した。
対処法
- GROUP BY句があるSQLでは、SELECT句に指定した列は、必ずGROUP BY句に含める
(SUMやCOUNTなどの集計関数を使用した列は除く)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
--OKな例1 →SELECTの列とGROUP BY句の列が同じなのでOK。 SELECT col1, col2 FROM sampletable GROUP BY col1, col2; --OKな例2 →col2はGROUP BY句には含まれないが、集計関数で囲っているためOK。 SELECT col1, count(col2) FROM sampletable GROUP BY col1; --NGな例 →col2はGROUP BY句に含まれないのでNG。 SELECT col1, col2 FROM sampletable GROUP BY col1; |
NGな例を解消するには以下のような方法があります。
・GROUP BY句を「col1, col2」とする。
・SELECT句からcol2を削除する。
・SELECT句のcol2を「MAX(col2)」とする。