PaliSkill
SQL Intermédiaire

Leçon 2 / 8 — Chapitre 10: Mise en pratique : restaurant

CTE : le chiffre d'affaires par plat cette semaine

Comme au chapitre 4, une CTE isole d'abord un calcul intermédiaire (les quantités vendues cette semaine), avant de le combiner à plats pour calculer un chiffre d'affaires.

WITH ventes_semaine AS (
  SELECT t.plat_id, SUM(t.quantite) AS quantite_totale
  FROM tickets t
  WHERE t.semaine = 'cette_semaine'
  GROUP BY t.plat_id
)
SELECT p.nom, v.quantite_totale, p.prix * v.quantite_totale AS chiffre_affaires
FROM ventes_semaine v
JOIN plats p ON p.id = v.plat_id
ORDER BY chiffre_affaires DESC;

ventes_semaine calcule, pour chaque plat vendu cette semaine, la quantité totale : Salade Cesar (ticket 1) = 2, Pizza (ticket 2) = 3, Burger (ticket 3) = 1, Tarte Tatin (ticket 7) = 2. La requête principale multiplie chaque quantité par le prix du plat : Pizza (15 $ × 3 = 45 $), Salade Cesar (12 $ × 2 = 24 $), Tarte Tatin (9 $ × 2 = 18 $), Burger (14 $ × 1 = 14 $). Triés par chiffre d'affaires décroissant, la Pizza arrive en tête.

À retenir :

  • Une CTE peut alimenter un calcul dérivé (ici, un chiffre d'affaires) dans la requête principale, sans jamais être réécrite.
  • WHERE t.semaine = 'cette_semaine' filtre dès la CTE, avant même le JOIN avec plats : seuls les plats vendus cette semaine apparaissent, les autres n'existent simplement pas dans ventes_semaine.

À vous de jouer : quel est le chiffre d'affaires du Burger Maison dans ce résultat ?

🔒

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