PaliSkill
SQL — Fonctions de fenêtrage

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

Présentation : RANK pour le classement d'une session d'examen

Dernier secteur de ce module : le suivi des notes d'étudiants sur plusieurs sessions d'examen (notes sur 20, plus haut = meilleur).

etudiants
id | nom    | filiere
1  | Amina  | info
2  | Bruno  | info
3  | Chiara | gestion
4  | Driss  | gestion
notes_examens
id | etudiant_id | session | note
1  | 1           | 1       | 12
2  | 1           | 2       | 14
3  | 1           | 3       | 16
4  | 2           | 1       | 10
5  | 2           | 2       | 12
6  | 2           | 3       | 14
7  | 3           | 1       | 15
8  | 3           | 2       | 15
9  | 3           | 3       | 18
10 | 4           | 1       | 11
11 | 4           | 2       | 13
12 | 4           | 3       | 15
SELECT e.nom, n.session, n.note,
  RANK() OVER (PARTITION BY n.session ORDER BY n.note DESC) AS rang_session
FROM notes_examens n
JOIN etudiants e ON e.id = n.etudiant_id;

À la session 1, les notes triées de la plus haute à la plus basse sont : 15 (Chiara), 12 (Amina), 11 (Driss), 10 (Bruno) — Chiara obtient rang_session = 1.

À retenir :

  • Ce chapitre final revisite l'ensemble des techniques du module (RANK, PERCENT_RANK, LAG, AVG cumulé, FIRST_VALUE/LAST_VALUE, NTILE, CASE) sur un nouveau secteur, sans en introduire de nouvelles.

À vous de jouer : quel rang_session obtient Driss à la session 1 (note 11) ?

À vous de jouer

À faire

Voici une table etudiants :

etudiants
id | nom    | filiere
1  | Amina  | info
2  | Bruno  | info
3  | Chiara | gestion
4  | Driss  | gestion

Et une table notes_examens (notes sur 20, session 1 : Amina 12, Bruno 10, Chiara 15, Driss 11) :

Avec RANK() OVER (PARTITION BY session ORDER BY note DESC) AS rang_session, quel rang_session obtient Driss à la session 1 ?

Testez cette requête dans un bac à sable SQL en ligne (SQLite Fiddle, W3Schools "Try SQL", ou tout autre) pour vérifier le résultat avant de répondre.

💡 Un nombre.

À vous de jouer

À faire

Dans ce même classement de la session 1, qui obtient rang_session = 1 ?

Testez cette requête dans un bac à sable SQL en ligne (SQLite Fiddle, W3Schools "Try SQL", ou tout autre) pour vérifier le résultat avant de répondre.

💡 Un prénom.

Quitter le module