Maison > base de données > tutoriel mysql > Comment la clause SQL `GROUP BY` agrège-t-elle les données et quand renvoie-t-elle une seule ligne ?

Comment la clause SQL `GROUP BY` agrège-t-elle les données et quand renvoie-t-elle une seule ligne ?

DDD
Libérer: 2025-01-10 13:11:41
original
236 Les gens l'ont consulté

How Does the SQL `GROUP BY` Clause Aggregate Data and When Does it Return a Single Row?

Clause GROUP BY de SQL : agrégation de données et sortie de ligne

L'agrégation de données est la pierre angulaire de l'analyse des bases de données. La clause GROUP BY de SQL fournit le mécanisme permettant de regrouper les lignes en fonction des colonnes spécifiées et d'appliquer des fonctions d'agrégation à ces groupes.

Examinons une requête à l'aide d'un exemple de table, Tab1, avec des colonnes a1, a2, a3, etc. (aucune n'identifiant de manière unique une ligne). Considérez cette requête :

SELECT a1, a2, SUM(a3) FROM Tab1 GROUP BY a1, a2;
Copier après la connexion

Déchiffrer les résultats de la requête

La clause GROUP BY divise les lignes de Tab1 en groupes en fonction de combinaisons uniques de a1 et a2. La requête produit une ligne pour chaque paire distincte (a1, a2).

Pour chaque groupe, la fonction SUM(a3) calcule le total des a3 valeurs. Ainsi, le résultat montre la a3 somme agrégée pour chaque combinaison unique (a1, a2).

Renverra-t-il toujours une seule ligne ?

Le résultat de la requête n'est pas toujours une seule ligne. Il renvoie plusieurs lignes : une par groupe unique (a1, a2). Le nombre de lignes dépend directement du nombre de groupes distincts dans Tab1. Ce n'est que si Tab1 a une ligne, ou si toutes les lignes partagent des valeurs a1 et a2 identiques, que la requête produira une seule ligne.

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!

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