← SQL avancé
Leçon 4 / 9 — Chapitre 8: Mise en pratique : hôtellerie
CASE : compter les réservations par statut
Comme au chapitre 4, SUM(CASE WHEN ...) compte sélectivement, sans GROUP BY, en une seule ligne de résultat.
SELECT
SUM(CASE WHEN statut = 'confirmee' THEN 1 ELSE 0 END) AS nb_confirmees,
SUM(CASE WHEN statut = 'annulee' THEN 1 ELSE 0 END) AS nb_annulees
FROM reservations;
Sur les 7 réservations, 6 sont confirmées et 1 est annulée (la réservation 4). nb_confirmees = 6, nb_annulees = 1.
À retenir :
- Cette technique donne en une seule requête un résumé de répartition, sans avoir besoin d'un
GROUP BYsurstatut. - Vérifier que
nb_confirmees + nb_annuleesretombe sur le nombre total de réservations (ici, 6 + 1 = 7) confirme qu'aucun statut n'a été oublié.
À vous de jouer : nb_confirmees + nb_annulees correspond-il bien au nombre total de lignes de la table reservations ?
🔒
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