Maison > base de données > tutoriel mysql > le corps du texte

Comment puis-je utiliser les fonctions d'agrégation sans GROUP BY dans MySQL ?

DDD
Libérer: 2024-11-06 07:09:02
original
307 Les gens l'ont consulté

How Can I Use Aggregate Functions Without GROUP BY in MySQL?

Fonctions d'agrégation MySQL sans GROUP BY : pourquoi et comment

Dans MySQL, les fonctions d'agrégation peuvent être utilisées dans des listes SELECT sans spécifier de GROUP BY clause, contrairement à d’autres SGBDR tels que SQL Server. Ce comportement, qui peut sembler inattendu, est en fait un choix de conception délibéré.

Lorsqu'une fonction d'agrégation est utilisée sans GROUP BY, MySQL traite l'ensemble des résultats comme un seul groupe. Cela signifie que la fonction d'agrégation renvoie une valeur unique pour l'ensemble de la table ou du sous-ensemble spécifié dans la requête.

Par exemple, la requête SELECT col1,col2,sum(col3) FROM tbl1; renvoie une seule ligne contenant les premières valeurs de col1 et col2, ainsi que la somme de toutes les valeurs de col3. Ce comportement peut être utile dans les scénarios où vous devez calculer des statistiques récapitulatives sans regrouper les données.

Le comportement des fonctions d'agrégation sans GROUP BY peut être modifié à l'aide du mode SQL du serveur ONLY_FULL_GROUP_BY. Par défaut, ce mode est désactivé dans les versions MySQL antérieures à 5.7.5. Cependant, il peut être activé pour interdire les fonctions d'agrégation sans GROUP BY.

Pour activer ONLY_FULL_GROUP_BY, ajoutez la ligne suivante à votre fichier de configuration MySQL (généralement my.cnf) :

sql-mode=ONLY_FULL_GROUP_BY
Copier après la connexion

Une fois activé, MySQL générera une erreur pour les requêtes qui utilisent des fonctions d'agrégation sans GROUP BY. Cela peut aider à garantir l’intégrité des données et à éviter des résultats incorrects.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!