DENSE_RANK des filières par nombre d'élèves
PrepaSup
Enonce
Affiche chaque filière, son nombre d'élèves et son rang dense parmi les filières (par nombre décroissant), en utilisant DENSE_RANK().
PrepaSup
Notes(id, id_user, matiere, date_eval, note)
Colles(id, id_user1, id_user2, date_colle)
Classes(id, id_note, id_user, appreciation, date_conseil)
Dates au format YYYY-MM-DD. Notes sur 20.
📖 Rappel de cours
DENSE_RANK() attribue un rang en suivant l'ordre demandé, sans sauter de numéro en cas d'égalité. Ici le rang porte sur un agrégat, calculé après le regroupement.
⚠ Le piège : RANK saute des rangs après une égalité — 1, 1, 3 — là où DENSE_RANK enchaîne — 1, 1, 2. Et ROW_NUMBER ne tolère aucune égalité : il départage arbitrairement.
← Exercices SQL pour la prépa — bases de données en CPGE
Exercices du meme theme
- Cross join : toutes les combinaisons élève-filière
- Agrégation conditionnelle avec CASE WHEN
- CTE : statistiques intermédiaires par élève
- HAVING avec sous-requête : filières au-dessus de la moyenne
- CTE récursive : chaîne de colles depuis l'élève 1
- INSERT ... SELECT : archiver les anciennes évaluations
La correction commentee, les indices progressifs, l'execution du code dans le navigateur et la verification par l'IA sont reserves aux abonnes.