PaliSkill
← SQL Intermédiaire

Leçon 9 / 9 — Chapitre 4: CTE et opérateurs ensemblistes

Cas pratique : rapport combinant UNION et CTE

Ce cas pratique combine deux CTE et un UNION — les notions de ce chapitre.

WITH jamais_commandes AS (
  SELECT nom FROM produits
  WHERE id NOT IN (SELECT produit_id FROM commandes)
),
chers AS (
  SELECT nom FROM produits WHERE prix > (SELECT AVG(prix) FROM produits)
)
SELECT nom FROM jamais_commandes
UNION
SELECT nom FROM chers;

Étape par étape :

  1. jamais_commandes liste les produits sans aucune commande : Stylo, Biscuits.
  2. chers liste les produits dont le prix dépasse la moyenne générale (400) : Cahier, Jus, Dentifrice.
  3. UNION combine les deux listes sans doublon — ici, elles ne se recoupent pas.

Résultat final : 5 lignes — Stylo, Biscuits, Cahier, Jus, Dentifrice. Seul Savon manque : il a bien été commandé, et son prix (300) reste sous la moyenne.

À retenir :

  • Deux CTE définies dans un même WITH peuvent chacune alimenter une branche différente d'un UNION.
  • Cette requête produit exactement le résultat obtenu par un OR entre les deux mêmes conditions au chapitre précédent — CTE + UNION et sous-requêtes + OR sont deux façons différentes d'exprimer la même union logique.

À vous de jouer : comptez combien de CTE sont définies dans le WITH de cette requête, avant le SELECT final.

🔒

Continuez ce module

Débloquez les leçons restantes ainsi que l'attestation finale.

7 500 XOF / 11,43 € / 12,46 $

Débloquez les 87 leçons restantes de ce module

Pour vous communiquer où envoyer le paiement.

Moyen de paiement souhaité

Nous vous contactons pour le paiement — activé dès réception.