← 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 :
jamais_commandesliste les produits sans aucune commande : Stylo, Biscuits.chersliste les produits dont le prix dépasse la moyenne générale (400) : Cahier, Jus, Dentifrice.UNIONcombine 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
WITHpeuvent chacune alimenter une branche différente d'unUNION. - Cette requête produit exactement le résultat obtenu par un
ORentre 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 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