Techniques SQL pour regrouper des données numériques
Ce guide montre comment classer les données numériques dans des plages définies au sein d'une base de données SQL. Imaginez que vous ayez un tableau avec une colonne numérique (par exemple, « score »). L'objectif est de générer un résumé montrant le nombre de scores entrant dans chaque plage.
Exemple illustratif :
Un tableau récapitulatif pourrait ressembler à ceci :
Score Range | Frequency |
---|---|
0-9 | 11 |
10-19 | 14 |
20-29 | 3 |
... | ... |
Voici comment y parvenir dans SQL Server 2000 et au-delà :
Méthode 1 : Expression CASE dans une sous-requête
Cette méthode utilise une expression CASE
à l'intérieur d'une sous-requête pour attribuer des étiquettes de plage à chaque score, suivie d'une requête externe pour compter les occurrences dans chaque plage.
<code class="language-sql">SELECT t.range AS "Score Range", COUNT(*) AS "Frequency" FROM ( SELECT score, CASE WHEN score BETWEEN 0 AND 9 THEN '0-9' WHEN score BETWEEN 10 AND 19 THEN '10-19' ELSE '20-99' -- Handle scores outside defined ranges END AS range FROM scores ) t GROUP BY t.range;</code>
Méthode 2 : Expression CASE dans la requête principale
Alternativement, l'expression CASE
peut être directement intégrée dans la requête principale, simplifiant légèrement la structure.
<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' -- Handle scores outside defined ranges END AS "Score Range", COUNT(*) AS "Frequency" FROM scores GROUP BY CASE WHEN score BETWEEN 0 AND 9 THEN '0-9' WHEN score BETWEEN 10 AND 19 THEN '10-19' ELSE '20-99' END;</code>
Ces méthodes regroupent et résument efficacement les données dans des plages personnalisées, offrant des informations précieuses sur la distribution des données. N'oubliez pas d'ajuster les déclarations CASE
pour qu'elles correspondent à vos plages de scores spécifiques. Pensez à ajouter une gestion des erreurs pour les valeurs en dehors des 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!