Oracle
 sql >> Base de données >  >> RDS >> Oracle

ORA-00979 n'est pas un groupe par expression

Vous devez mettre toutes les colonnes du SELECT dans le GROUP BY ou utilisez des fonctions sur eux qui compressent les résultats en une seule valeur (comme MIN , MAX ou SUM ).

Un exemple simple pour comprendre pourquoi cela se produit :Imaginez que vous ayez une base de données comme celle-ci :

FOO BAR
0   A
0   B

et vous exécutez SELECT * FROM table GROUP BY foo . Cela signifie que la base de données doit renvoyer une seule ligne comme résultat avec la première colonne 0 pour remplir le GROUP BY mais il y a maintenant deux valeurs de bar à choisir. Quel résultat attendez-vous - A ou B ? Ou si la base de données renvoie plus d'une ligne, violant le contrat de GROUP BY ?