Maison >base de données >tutoriel mysql >Comment puis-je utiliser la clause GROUP BY de SQL pour agréger des données en plages ?
SQL GROUP BY pour l'agrégation de plages de données
L'analyse de la répartition des données sur différentes plages est un aspect crucial de l'analyse des données. La clause GROUP BY
de SQL offre un mécanisme robuste pour agréger les données en groupes prédéfinis, facilitant la génération de tableaux récapitulatifs et de rapports concis.
Création de groupes basés sur une plage
Pour classer les données dans des plages spécifiques, nous exploitons l'instruction CASE WHEN
pour attribuer des valeurs à une nouvelle colonne en fonction de conditions définies. Cette colonne nouvellement créée sert ensuite de base au regroupement des données à l'aide de la clause GROUP BY
.
Exemple illustratif : regroupement de plages de scores
Considérons un scénario dans lequel nous devons déterminer la fréquence des scores dans des intervalles spécifiques (par exemple, 0-9, 10-19, 20-29). La requête suivante construit une nouvelle colonne représentant ces plages de scores :
<code class="language-sql">SELECT CASE WHEN score BETWEEN 0 AND 9 THEN '0-9' WHEN score BETWEEN 10 AND 19 THEN '10-19' ELSE '20-99' END AS score_range FROM scores;</code>
Cette requête génère une colonne score_range
, attribuant chaque score à sa plage correspondante.
Agrégation avec GROUP BY
Pour calculer le nombre de scores dans chaque plage, nous utilisons la fonction d'agrégation COUNT(*)
en conjonction avec la clause GROUP BY
. La requête ci-dessous y parvient :
<code class="language-sql">SELECT score_range, COUNT(*) AS score_count FROM ( SELECT CASE WHEN score BETWEEN 0 AND 9 THEN '0-9' WHEN score BETWEEN 10 AND 19 THEN '10-19' ELSE '20-99' END AS score_range FROM scores ) AS ranged_scores GROUP BY score_range;</code>
Sortie
Le tableau résultant affiche deux colonnes : score_range
et score_count
, fournissant un aperçu clair de la répartition des scores sur les plages définies.
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!