PaliSkill
SQL — Fonctions de fenêtrage

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

FIRST_VALUE et LAST_VALUE : l'écart entre la première et la dernière note

Comme au chapitre 5, FIRST_VALUE() et LAST_VALUE() (avec son cadre corrigé) permettent de comparer directement le point de départ et le point d'arrivée de chaque étudiant.

SELECT DISTINCT e.nom,
  FIRST_VALUE(n.note) OVER w AS premiere_note,
  LAST_VALUE(n.note) OVER w AS derniere_note,
  LAST_VALUE(n.note) OVER w - FIRST_VALUE(n.note) OVER w AS ecart_total
FROM notes_examens n
JOIN etudiants e ON e.id = n.etudiant_id
WINDOW w AS (
  PARTITION BY n.etudiant_id ORDER BY n.session
  ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
);

Pour Amina : premiere_note = 12 (session 1), derniere_note = 16 (session 3), ecart_total = 16 - 12 = 4. Pour Chiara : premiere_note = 15, derniere_note = 18, ecart_total = 3.

À retenir :

  • Le cadre ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING (chapitre 5) reste indispensable pour que LAST_VALUE renvoie la vraie dernière session, pas la session courante.

À vous de jouer : quel est ecart_total pour Bruno (première note 10, dernière note 14) ?

🔒

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