Maison > base de données > tutoriel mysql > Comment puis-je regrouper des données numériques en plages dans SQL ?

Comment puis-je regrouper des données numériques en plages dans SQL ?

Barbara Streisand
Libérer: 2025-01-17 21:21:11
original
608 Les gens l'ont consulté

How Can I Group Numerical Data into Ranges in SQL?

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal