PaliSkill
SQL Intermédiaire

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