PaliSkill
← SQL avancé

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

Vue matérialisée : un rapport mensuel figé

Comme au chapitre 5, une vue matérialisée fige le résultat d'un calcul coûteux — ici, le revenu mensuel — plutôt que de le recalculer à chaque interrogation.

CREATE MATERIALIZED VIEW rapport_mensuel AS
SELECT DATE_TRUNC('month', r.date_arrivee) AS mois, SUM(r.nb_nuits * c.prix_nuit) AS revenu_total
FROM reservations r
JOIN chambres c ON r.chambre_id = c.id
WHERE r.statut = 'confirmee'
GROUP BY DATE_TRUNC('month', r.date_arrivee);

Au moment de sa création, rapport_mensuel contient les mêmes valeurs que la CTE de la leçon 2 (juin = 1060, juillet = 420, août = 240). Si une nouvelle réservation confirmée était ajoutée pour juillet après cette création, le revenu de juillet dans rapport_mensuel ne changerait pas automatiquement — un REFRESH MATERIALIZED VIEW rapport_mensuel; serait nécessaire pour le mettre à jour.

À retenir :

  • Une vue matérialisée convient bien à un rapport consulté souvent mais recalculé rarement, comme un bilan mensuel.
  • Sans REFRESH, son contenu reste celui du dernier calcul, même si de nouvelles réservations sont ajoutées entre-temps.

À vous de jouer : après l'ajout d'une nouvelle réservation confirmée pour juin, quelle instruction faudrait-il exécuter pour que rapport_mensuel reflète ce changement ?

🔒

Continuez ce module

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

8 500 XOF / 12,96 € / 14,12 $

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.