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
DDDoriginal
2025-01-10 13:11:41238parcourir

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 :

<code class="language-sql">SELECT a1, a2, SUM(a3) FROM Tab1 GROUP BY a1, a2;</code>

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:
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