Maison >base de données >tutoriel mysql >Comment puis-je compter et regrouper des données simultanément dans une seule instruction SQL ?
Combiner COUNT et GROUP BY pour une agrégation efficace des données
SQL fournit un mécanisme puissant pour effectuer à la fois des opérations de comptage et de regroupement au sein d'une seule instruction. Ceci est particulièrement utile lorsque vous devez déterminer la fréquence de différentes valeurs au sein d’un ensemble de données. Par exemple, calculer le nombre d'utilisateurs résidant dans différentes villes.
La clé est d'utiliser la fonction d'agrégation COUNT
en conjonction avec la clause GROUP BY
. Voici comment y parvenir :
<code class="language-sql">SELECT town, COUNT(*) AS UserCount FROM user GROUP BY town;</code>
Cette requête compte les occurrences de chaque town
valeur unique. La clause GROUP BY
garantit que les décomptes sont regroupés selon la commune, ce qui donne lieu à un récapitulatif montrant chaque commune et le nombre d'utilisateurs correspondant. Utiliser COUNT(*)
est plus efficace que COUNT(town)
dans ce scénario.
Le résultat sera un tableau avec deux colonnes : town
et UserCount
, où UserCount
représente le nombre total d'utilisateurs pour chaque ville. Par exemple, avec trois villes (Copenhague, New York, Athènes) et un total de 58 utilisateurs, le résultat pourrait ressembler à ceci :
Town | UserCount |
---|---|
Copenhagen | 20 |
New York | 20 |
Athens | 18 |
Vous pouvez également utiliser une variable pour stocker le nombre total d'utilisateurs et l'inclure dans l'ensemble de résultats :
<code class="language-sql">DECLARE @TotalUsers INT; SELECT @TotalUsers = COUNT(*) FROM user; SELECT DISTINCT town, @TotalUsers AS TotalUserCount FROM user;</code>
Cette approche calcule le nombre total d'utilisateurs, puis affiche ce total à côté de chaque ville dans la sortie. Notez que cette méthode répétera le nombre total d'utilisateurs pour chaque ville. La première méthode est généralement préférée pour des raisons de clarté et d’efficacité lorsqu’il faut des décomptes groupés.
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!