ORA-00979: not a GROUP BY expression(GROUP BY の式ではない)
Oracle意味
SELECT リストで集計関数 (SUM、COUNT など) とともに集計されていない列が使われたが、その列が GROUP BY 句に追加されていない。Oracle はその列をどうグループ化すべきかわからない。
原因
SELECT にあるが GROUP BY にない列、集計関数の外にある式が GROUP BY リストにない、HAVING または SELECT 式での不整合。
対処方法
集計されていないすべての列を GROUP BY リストに追加する: SELECT department, COUNT(*) FROM employee GROUP BY department; 代わりに、その列も集計関数 (MAX、MIN) で囲むか、分析関数 (OVER()) でグループ化を設計し直す。
同じデータベースの他の項目
- ORA-01400cannot insert NULL into (column)(列に NULL は挿入できない)
- ORA-02291integrity constraint violated - parent key not found(整合性制約違反 - 親キーがない)
- ORA-02292integrity constraint violated - child record found(整合性制約違反 - 子レコードがある)
- ORA-00918column ambiguously defined(列の定義が曖昧)
- ORA-06550line/column PLS-... PL/SQL コンパイルエラー
- ORA-04068existing state of packages has been discarded(パッケージの既存の状態が破棄された)
- ORA-01427single-row subquery returns more than one row(単一行副クエリが複数行を返した)