Regrouper et étiqueter les données
Transformez des valeurs en catégories.
Regrouper et étiqueter les données est une leçon SQL Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage SQL Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours SQL Academy comprend 4 leçons au total.
Qu’est-ce que le regroupement en catégories ?
Le regroupement en catégories consiste à réunir des valeurs brutes dans des catégories nommées, en transformant des nombres, des dates ou des codes en libellés compréhensibles.
Au lieu d’afficher une note de 87, vous affichez « Bonne ». Au lieu d’afficher un âge de 14 ans, vous affichez « Adolescent ». L’expression CASE est votre principal outil pour cela.
Exemple de table : commandes
Nous utiliserons une table commandes tout au long de cette leçon. Chaque ligne contient le montant d’une commande et un code de statut.
Exécutez la requête ci-dessous pour voir les données sur lesquelles nous travaillons.
SELECT id, customer, amount, status
FROM orders
ORDER BY id;Attribuer des libellés avec CASE WHEN
Le schéma de regroupement en catégories le plus simple consiste à vérifier une condition et à attribuer un libellé. Le bloc CASE WHEN ... THEN ... ELSE ... END renvoie une nouvelle chaîne pour chaque ligne.
Ici, nous attribuons à chaque commande le libellé « Grande » ou « Petite » selon son montant.
SELECT id,
amount,
CASE
WHEN amount >= 500 THEN 'Large'
ELSE 'Small'
END AS order_size
FROM orders;Plusieurs catégories avec des chaînes de WHEN
Vous pouvez ajouter autant de clauses WHEN que nécessaire. SQL les vérifie de haut en bas et s’arrête à la première correspondance.
Cet exemple répartit les montants en trois niveaux : Petite, Moyenne et Grande.
SELECT id,
amount,
CASE
WHEN amount < 100 THEN 'Small'
WHEN amount < 500 THEN 'Medium'
ELSE 'Large'
END AS order_tier
FROM orders;Regrouper des valeurs textuelles
Le regroupement en catégories ne concerne pas uniquement les nombres. Vous pouvez faire correspondre des valeurs textuelles exactes et les remplacer par des libellés plus explicites.
Ici, les codes de statut bruts 'P', 'S' et 'C' deviennent des mots compréhensibles.
SELECT id,
status,
CASE status
WHEN 'P' THEN 'Pending'
WHEN 'S' THEN 'Shipped'
WHEN 'C' THEN 'Cancelled'
ELSE 'Unknown'
END AS status_label
FROM orders;Utiliser la forme CASE simple
Lorsque vous comparez une colonne à plusieurs valeurs fixes, la forme CASE simple (CASE column WHEN value ...) est plus courte et plus facile à lire que la répétition du nom de la colonne dans chaque clause WHEN.
Le résultat est identique à celui de la forme recherchée.
SELECT id,
CASE status
WHEN 'P' THEN 'Pending'
WHEN 'S' THEN 'Shipped'
WHEN 'C' THEN 'Cancelled'
ELSE 'Unknown'
END AS status_label
FROM orders;Regrouper des catégories dans GROUP BY
Une fois que vous avez un libellé de catégorie, vous pouvez l’utiliser pour compter le nombre de lignes dans chaque catégorie. Placez toute l’expression CASE dans GROUP BY.
Cette requête indique combien de commandes sont Petites, Moyennes ou Grandes.
SELECT
CASE
WHEN amount < 100 THEN 'Small'
WHEN amount < 500 THEN 'Medium'
ELSE 'Large'
END AS order_tier,
COUNT(*) AS total_orders
FROM orders
GROUP BY
CASE
WHEN amount < 100 THEN 'Small'
WHEN amount < 500 THEN 'Medium'
ELSE 'Large'
END;Regrouper avec l’alias d’une sous-requête
Répéter un long bloc CASE dans GROUP BY est verbeux. Une approche plus claire consiste à placer la requête principale dans une sous-requête (ou un CTE) afin de pouvoir faire directement référence à l’alias.
SELECT order_tier, COUNT(*) AS total_orders
FROM (
SELECT
CASE
WHEN amount < 100 THEN 'Small'
WHEN amount < 500 THEN 'Medium'
ELSE 'Large'
END AS order_tier
FROM orders
) AS bucketed
GROUP BY order_tier;Catégories numériques : groupes d’âge
Le regroupement par âge est un cas d’utilisation classique du regroupement en catégories. La requête ci-dessous attribue à chaque client une tranche d’âge nommée.
Remarquez que les conditions vont de la plus petite à la plus grande : SQL s’arrête au premier WHEN vrai, l’ordre est donc important.
SELECT name,
age,
CASE
WHEN age < 13 THEN 'Child'
WHEN age < 18 THEN 'Teen'
WHEN age < 65 THEN 'Adult'
ELSE 'Senior'
END AS age_group
FROM customers;Attribuer un libellé aux valeurs NULL d’une catégorie
Si une valeur est NULL, aucune condition WHEN (à l’exception de IS NULL) ne lui correspondra. Sans vérification explicite, les valeurs NULL passent dans la branche ELSE.
Ajoutez une clause WHEN column IS NULL pour attribuer aux valeurs NULL leur propre libellé.
SELECT id,
amount,
CASE
WHEN amount IS NULL THEN 'No Data'
WHEN amount < 100 THEN 'Small'
WHEN amount < 500 THEN 'Medium'
ELSE 'Large'
END AS order_tier
FROM orders;Regrouper dans ORDER BY
Vous pouvez également utiliser directement une expression CASE dans ORDER BY pour contrôler la priorité de tri sans ajouter de nouvelle colonne.
L’exemple ci-dessous affiche toujours d’abord les commandes En attente, puis les commandes Expédiées et enfin les commandes Annulées.
SELECT id, customer, status
FROM orders
ORDER BY
CASE status
WHEN 'P' THEN 1
WHEN 'S' THEN 2
WHEN 'C' THEN 3
ELSE 4
END;Vérification rapide
Vérifiez votre compréhension du regroupement en catégories et de l’attribution de libellés aux données avec CASE.
Récapitulatif de la leçon
Excellent travail ! Voici ce que vous avez appris sur le regroupement en catégories et l’attribution de libellés aux données :
- Le regroupement en catégories transforme les valeurs brutes en catégories nommées à l’aide de
CASE WHEN. - Les chaînes de clauses
WHENcréent plusieurs catégories ; SQL s’arrête à la première correspondance. - La forme CASE simple (
CASE col WHEN val) est idéale pour comparer une colonne à des valeurs fixes. - Vous pouvez utiliser GROUP BY avec une expression
CASEpour compter les lignes de chaque catégorie. - Gérez toujours explicitement les valeurs
NULLavecWHEN col IS NULLafin de leur attribuer un libellé pertinent. CASEfonctionne également dansORDER BYpour définir une priorité de tri personnalisée.
Le regroupement en catégories rend les rapports beaucoup plus lisibles en remplaçant les codes et les nombres bruts par des libellés clairs et descriptifs.
Questions Fréquemment Posées
La leçon « Regrouper et étiqueter les données » est-elle gratuite ?
Oui — le texte complet de « Regrouper et étiqueter les données » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours SQL Academy, passe à CoddyKit PRO. Le cours SQL Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Regrouper et étiqueter les données » ?
Transformez des valeurs en catégories. Tu pratiques SQL Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer SQL Academy ?
Aucune expérience préalable n'est requise. SQL Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Regrouper et étiqueter les données » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon SQL Academy ?
Oui. Chaque leçon SQL Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- L’expression CASE
- CASE recherché ou simple
- Regrouper et étiqueter les données
- CASE dans ORDER BY et les agrégations