Agrégation conditionnelle avec CASE WHEN
PrepaSup
Enonce
Affiche, pour chaque filière, le nombre d'élèves inscrits avant 2023 et le nombre inscrits à partir de 2023, en une seule requête.
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
L'agrégation conditionnelle consiste à envelopper un CASE WHEN dans un SUM : chaque ligne vaut 1 si elle remplit le critère, 0 sinon. On obtient plusieurs comptes en une seule lecture de la table.
⚠ Le piège : Mettre la condition dans le WHERE filtrerait toute la requête et ferait disparaître l'autre catégorie. C'est bien à l'intérieur de l'agrégat qu'elle doit se trouver.
← Exercices SQL pour la prépa — bases de données en CPGE
Exercices du meme theme
- EXCEPT : élèves ayant évalué mais jamais apprécié
- Total cumulé d'appréciations (running total)
- Cross join : toutes les combinaisons élève-filière
- CTE : statistiques intermédiaires par élève
- DENSE_RANK des filières par nombre d'élèves
- HAVING avec sous-requête : filières au-dessus de la moyenne
La correction commentee, les indices progressifs, l'execution du code dans le navigateur et la verification par l'IA sont reserves aux abonnes.