Maison > base de données > tutoriel mysql > Pourquoi ma requête SQL « GROUP BY » sans fonctions d'agrégation renvoie-t-elle une erreur ?

Pourquoi ma requête SQL « GROUP BY » sans fonctions d'agrégation renvoie-t-elle une erreur ?

DDD
Libérer: 2024-12-24 21:42:11
original
742 Les gens l'ont consulté

Why Does My SQL `GROUP BY` Query Without Aggregate Functions Return an Error?

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 :

  • Être incluse dans la clause GROUP BY
  • Être utilisée dans une fonction d'agrégation

Par exemple, considérons le tableau suivant :

Name | OrderNumber
------------------
John | 1
John | 2
Copier après la connexion

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 :

    • John | 1
    • Jean | 2
  • Utiliser une fonction d'agrégation :

    • MAX(OrderNumber) : Résultat : John | 2
    • SUM(OrderNumber) : Résultat : John | 3

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal