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 la certification finale.

2 500 XOF / 3,81 € / 4,15 $

Débloquez les 72 leçons restantes de ce module

Votre paiement est vérifié avant l'activation de l'accès