PaliSkill
← SQL — Fonctions de fenêtrage

Leçon 7 / 9 — Chapitre 9: Mise en pratique : résultats académiques

CASE et fenêtre : attribuer une mention selon la moyenne finale

Comme au chapitre 6, un CASE peut transformer une moyenne cumulée (calculée sans ORDER BY, donc constante sur toutes les lignes d'un étudiant) en une étiquette métier — ici, une mention.

SELECT e.nom, n.session, n.note,
  CASE
    WHEN AVG(n.note) OVER (PARTITION BY n.etudiant_id) >= 16 THEN $q2$mention tres bien$q2$
    WHEN AVG(n.note) OVER (PARTITION BY n.etudiant_id) >= 14 THEN $q2$mention bien$q2$
    WHEN AVG(n.note) OVER (PARTITION BY n.etudiant_id) >= 12 THEN $q2$mention assez bien$q2$
    ELSE $q2$admis sans mention$q2$
  END AS mention
FROM notes_examens n
JOIN etudiants e ON e.id = n.etudiant_id;

La moyenne finale d'Amina (14) donne 'mention bien' ; celle de Chiara (16) donne 'mention tres bien' ; celle de Bruno (12) donne 'mention assez bien'. Cette étiquette est identique sur les 3 lignes (sessions) de chaque étudiant, puisque la moyenne utilisée (sans ORDER BY) est constante par étudiant.

À retenir :

  • AVG() OVER (PARTITION BY ...) sans ORDER BY, combinée à CASE, permet d'étiqueter chaque ligne d'un groupe avec une catégorie basée sur un résumé de tout le groupe — la même architecture que celle vue au chapitre 6.

À vous de jouer : quelle mention obtient Driss (moyenne finale 13) ?

🔒

Continuez ce module

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

8 000 XOF / 12,20 € / 13,29 $

Débloquez les 78 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.