ORA-00979: not a GROUP BY expression (n'est pas une expression GROUP BY)
OracleQue signifie cette erreur ?
Une colonne non agrégée a été utilisée dans la liste SELECT avec une fonction d'agrégation (SUM, COUNT, etc.), mais la colonne n'a pas été ajoutée à la clause GROUP BY. Oracle ne sait pas comment regrouper cette colonne.
Cause
Colonne présente dans le SELECT mais pas dans le GROUP BY ; expressions hors fonctions d'agrégation absentes de la liste GROUP BY ; incohérence dans HAVING ou dans les expressions du select.
Comment la corriger
Ajoutez toutes les colonnes non agrégées à la liste GROUP BY : SELECT department, COUNT(*) FROM employee GROUP BY department; Vous pouvez aussi encapsuler cette colonne dans une fonction d'agrégation (MAX, MIN), ou repenser le regroupement avec une fonction analytique (OVER()).
Autres entrées pour ce moteur
- ORA-01400cannot insert NULL into (column) (insertion de NULL impossible dans la colonne)
- ORA-02291integrity constraint violated - parent key not found (contrainte d'intégrité violée : clé parente introuvable)
- ORA-02292integrity constraint violated - child record found (contrainte d'intégrité violée : enregistrement enfant trouvé)
- ORA-00918column ambiguously defined (colonne définie de façon ambiguë)
- ORA-06550line/column PLS-... PL/SQL compilation error (erreur de compilation PL/SQL)
- ORA-04068existing state of packages has been discarded (l'état existant des packages a été supprimé)
- ORA-01427single-row subquery returns more than one row (une sous-requête mono-ligne renvoie plusieurs lignes)