PaliSkill
SQL — Fonctions de fenêtrage

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

PERCENT_RANK : la position relative dans sa filière

Retour sur PERCENT_RANK() (chapitre 2), appliqué ici à la moyenne finale de chaque étudiant, par filière.

WITH moyennes AS (
  SELECT etudiant_id, AVG(note) AS moyenne_finale
  FROM notes_examens
  GROUP BY etudiant_id
)
SELECT e.nom, e.filiere, m.moyenne_finale,
  PERCENT_RANK() OVER (PARTITION BY e.filiere ORDER BY m.moyenne_finale DESC) AS position_relative
FROM moyennes m
JOIN etudiants e ON e.id = m.etudiant_id;

Moyennes finales : Amina 14, Bruno 12 (filière info) ; Chiara 16, Driss 13 (filière gestion). Chaque filière ne comptant que 2 étudiants, PERCENT_RANK ne peut prendre que 0 (1er de la filière) ou 1 (dernier) : Amina et Chiara, en tête de leur filière, obtiennent 0 ; Bruno et Driss obtiennent 1.

À retenir :

  • Avec seulement 2 lignes par partition, PERCENT_RANK ne peut valoir que 0 ou 1 — ses valeurs intermédiaires (comme 0.4 au chapitre 2) n'apparaissent qu'avec des partitions plus grandes.

À vous de jouer : quelle est la position_relative de Bruno (moyenne 12, dernier de la filière info) ?

🔒

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