Fonction GROUP BY sans fonctions d'agrégation
Comprendre l'opération GROUP BY peut être difficile, en particulier lors de l'exclusion des fonctions d'agrégation. Cet article approfondit le concept et ses implications.
Dans l'exemple fourni, vous avez tenté d'exécuter une opération GROUP BY sur la table EMP sans fonctions d'agrégation, ce qui a entraîné plusieurs erreurs. Le message d'erreur « pas une expression GROUP BY » indique que les colonnes spécifiées dans la clause GROUP BY doivent correspondre aux colonnes sélectionnées dans l'instruction SELECT.
Pour comprendre pourquoi cela est nécessaire, il est crucial de comprendre comment GROUP BY transforme plusieurs lignes en une seule ligne. Lors de la combinaison de lignes, des conseils sont nécessaires pour gérer les colonnes avec des valeurs variables. Par conséquent, chaque colonne que vous incluez dans l'instruction SELECT doit soit :
Par exemple, considérons le tableau suivant :
Name | OrderNumber ------------------ John | 1 John | 2
Si vous exécutez un GROUP BY sur le nom uniquement, le résultat nécessite une règle pour sélectionner le numéro de commande. Les options sont :
Inclure le numéro de commande dans la clause GROUP BY : Cela produit deux lignes :
Utiliser une fonction d'agrégation :
En faisant correspondre les colonnes dans les instructions SELECT et GROUP BY, Oracle garantit une manipulation cohérente des données et évite toute ambiguïté.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!