PaliSkill
SQL avancé

Leçon 9 / 9 — Chapitre 8: Mise en pratique : hôtellerie

Cas pratique de synthèse : tableau de bord hôtelier

Ce cas pratique de synthèse combine ROLLUP, jointure et deux mesures agrégées — les notions de ce chapitre.

SELECT c.type, COUNT(*) AS nb_reservations, SUM(r.nb_nuits * c.prix_nuit) AS revenu
FROM reservations r
JOIN chambres c ON r.chambre_id = c.id
WHERE r.statut = 'confirmee'
GROUP BY ROLLUP (c.type)
ORDER BY c.type;

Étape par étape :

  1. La jointure et le filtre WHERE r.statut = 'confirmee' gardent les 6 réservations confirmées.
  2. GROUP BY ROLLUP (c.type) forme 3 groupes détaillés (simple : 2 réservations, 250 de revenu ; double : 3 réservations, 720 ; suite : 1 réservation, 750), plus une ligne de total général (6 réservations, 1720 de revenu).
  3. Le type suite, avec une seule réservation, génère presque autant de revenu que le type double avec 3 réservations — un déséquilibre que le simple COUNT ne révélerait pas seul.

À retenir :

  • Combiner plusieurs mesures (COUNT et SUM) dans un même ROLLUP révèle des déséquilibres qu'une seule mesure isolée masquerait.
  • Ce rapport de synthèse réutilise, dans une seule requête, la jointure de la leçon 2, le ROLLUP de la leçon 3, et l'esprit du comptage conditionnel de la leçon 4.

À vous de jouer : la ligne de total général de ce résultat a-t-elle bien nb_reservations = 6 ?

🔒

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