SQL Défi final
Le classement de la promo
Une jointure, un calcul par groupe, un filtre sur les groupes et un tri : la requête complète.
Ce défi utilise les tables eleves et notes de la base d'exemple. La table notes contient l'eleve_id de l'élève, la matière et la note. Pense à l'ordre des mots : SELECT … FROM … JOIN … GROUP BY … HAVING … ORDER BY.
Le défi
Écris une requête qui affiche, pour chaque élève qui a au moins 2 notes :
- son prénom ;
- sa moyenne, dans une colonne nommée
moyenne;
du meilleur au moins bon.
requete.sql
Résultat
Écris une requête : elle s'exécute pendant que tu tapes, sur une base d'exemple qui repart de zéro à chaque fois.
Voir les tables de la base d'exemple
classes (3 lignes)
| id | nom |
|---|---|
| 1 | BTS SIO 1 |
| 2 | BTS SIO 2 |
| 3 | Terminale STMG |
eleves (7 lignes)
| id | prenom | nom | age | ville | classe_id |
|---|---|---|---|---|---|
| 1 | Léa | Martin | 18 | Chartres | 1 |
| 2 | Tom | Bernard | 19 | Dreux | 2 |
| 3 | Inès | Petit | 18 | Chartres | 1 |
| 4 | Hugo | Durand | 20 | Paris | 2 |
| 5 | Chloé | Lambert | 17 | Lucé | 3 |
| 6 | Nathan | Dubois | 19 | Chartres | 1 |
| 7 | Sarah | Moreau | 18 | Dreux | NULL |
notes (9 lignes)
| id | eleve_id | matiere | note |
|---|---|---|---|
| 1 | 1 | Développement | 16 |
| 2 | 1 | Réseau | 12 |
| 3 | 2 | Développement | 11 |
| 4 | 2 | Réseau | 15 |
| 5 | 3 | Développement | 18 |
| 6 | 4 | Réseau | 9 |
| 7 | 6 | Développement | 13 |
| 8 | 6 | Réseau | 14 |
| 9 | 5 | Gestion | 15 |
- La requête s'exécute sans erreur
- Elle relie eleves et notes avec un JOIN
- Elle calcule la moyenne avec AVG, nommée moyenne
- Elle garde seulement les élèves qui ont au moins 2 notes
- Le résultat est le bon classement, dans le bon ordre
Bravo, toutes les consignes sont réussies !
Bloqué ? Voir une solution
SELECT e.prenom, AVG(n.note) AS moyenne
FROM eleves e
JOIN notes n ON n.eleve_id = e.id
GROUP BY e.prenom
HAVING COUNT(*) >= 2
ORDER BY moyenne DESC; Défi réussi !
Ton badge SQL passe en or dès que toutes les leçons du cours sont terminées. Retrouve tes badges sur la page d'accueil.