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

Pourquoi les fonctions d'agrégation MySQL peuvent-elles être utilisées sans clause GROUP BY ?

DDD
Libérer: 2024-11-05 19:45:02
original
601 Les gens l'ont consulté

Why Can MySQL Aggregate Functions Be Used Without a GROUP BY Clause?

Fonctions d'agrégation MySQL : le dilemme GROUP BY

Dans MySQL, les fonctions d'agrégation peuvent être utilisées dans une instruction SELECT sans définir explicitement un GROUP BY clause, tandis que d'autres systèmes de base de données comme SQL Server peuvent générer une erreur. Ce comportement soulève des questions sur la raison pour laquelle MySQL autorise l'exécution de telles requêtes.

La conception MySQL

MySQL autorise les fonctions d'agrégation dans la liste SELECT sans clause GROUP BY comme extension au standard SQL. Sans regroupement, la base de données suppose un seul groupe indéterminé et n'importe quelle valeur de nom peut être choisie pour ce groupe. Ce comportement permet une agrégation plus facile des données sur une table entière.

Exemple de requête

Considérez la requête :

SELECT name, MAX(age) FROM t;
Copier après la connexion

Sans GROUP BY clause, MySQL renvoie une seule ligne avec la valeur du prénom rencontré et la valeur d'âge maximale de la table entière.

ONLY_FULL_GROUP_BY Setting

MySQL version 5.7.5 et versions ultérieures introduit le paramètre ONLY_FULL_GROUP_BY, qui contrôle la gestion des fonctions d'agrégation sans clause GROUP BY. L'activation de ce paramètre nécessite la présence d'une clause GROUP BY pour toute utilisation de fonction d'agrégation.

Conclusion

Le comportement de MySQL consistant à autoriser les fonctions d'agrégation sans clause GROUP BY offre une flexibilité pour agréger les données sur une table entière. Cependant, le paramètre ONLY_FULL_GROUP_BY peut imposer un respect plus strict de la norme SQL pour une agrégation plus contrôlée.

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!