Leçon 5 / 9 — Chapitre 4: CTE et opérateurs ensemblistes
WITH : introduire une CTE
Une CTE (« Common Table Expression ») nomme une sous-requête avec WITH, avant la requête principale, pour la lire d'un bloc au lieu de l'imbriquer.
WITH ventes_par_categorie AS (
SELECT p.categorie, SUM(c.quantite) AS total_quantite
FROM produits p
JOIN commandes c ON p.id = c.produit_id
GROUP BY p.categorie
)
SELECT categorie, total_quantite
FROM ventes_par_categorie
WHERE total_quantite >= 5;
ventes_par_categorie calcule un total par catégorie : papeterie = 5, hygiène = 9, boisson = 1. La requête principale la traite ensuite comme une table ordinaire, avec un WHERE classique : total_quantite >= 5 garde papeterie et hygiène.
Résultat final : 2 lignes — exactement le même résultat que la sous-requête en FROM vue au chapitre précédent, mais écrit sous une forme séparée en deux blocs distincts, souvent plus lisible dès que la requête se complexifie.
À retenir :
WITH nom_cte AS (sous-requête) SELECT ... FROM nom_cte ...;nomme une sous-requête avant de l'utiliser dans la requête principale.- Une CTE produit le même résultat qu'une sous-requête équivalente en
FROM— la différence est uniquement une question de lisibilité et de réutilisation. - Une CTE peut être référencée plusieurs fois dans la requête principale sans avoir à réécrire sa définition.
À vous de jouer : réécrivez cette CTE en sous-requête classique dans le FROM, sans WITH, et vérifiez que le résultat ne change pas.
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 80 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès