Exercices SQL corrigés : COUNT, SUM, AVG, MIN, MAX
Mis à jour le
Les agrégats résument plusieurs lignes en une valeur : COUNT, SUM, AVG, MIN, MAX. Ces 3 exercices vont du niveau 1 au niveau 2 ; ils utilisent la syntaxe de SQLite, le moteur SQL de SpeedQL.
Conseil : COUNT(*) compte les lignes ; COUNT(colonne) ignore les valeurs NULL.
Relire la fiche « COUNT, SUM, AVG, MIN, MAX » de l’aide-mémoire
Exercice 1
Affiche le nombre total de produits.
| id | name | category | price | stock |
|---|---|---|---|---|
| 1 | Keyboard | Office | 25 | 40 |
| 2 | Mouse | Office | 15 | 0 |
| 3 | Screen | Display | 180 | 12 |
| 4 | Headset | Audio | 60 | 8 |
| 5 | Webcam | Office | 45 | 0 |
| 6 | Speaker | Audio | 35 | 25 |
Voir l’indice
Notions à utiliser : COUNT, SUM, AVG, MIN, MAX.
Structure de la requête :
SELECT COUNT(*)
FROM …Voir la correction
SELECT COUNT(*)
FROM products;Résultat attendu (1 ligne) :
| COUNT(*) |
|---|
| 6 |
Exercice 2
Affiche le salaire le plus élevé parmi tous les employés.
| id | name | department | salary |
|---|---|---|---|
| 1 | Alice | Finance | 32000 |
| 2 | Bob | IT | 41000 |
| 3 | Claire | Finance | 38000 |
| 4 | David | HR | 29000 |
| 5 | Emma | IT | 50000 |
| 6 | Farid | IT | 47000 |
| 7 | Gaelle | HR | 33000 |
| 8 | Hugo | Finance | 44000 |
Voir l’indice
Notions à utiliser : COUNT, SUM, AVG, MIN, MAX.
Structure de la requête :
SELECT MAX(…)
FROM …Voir la correction
SELECT MAX(salary)
FROM employees;Résultat attendu (1 ligne) :
| MAX(salary) |
|---|
| 50000 |
Exercice 3
Affiche le nombre de matchs nuls (les deux équipes ont marqué autant de buts) et le nombre total de buts marqués pendant ces matchs.
| id | played_on | home_id | away_id | home_goals | away_goals |
|---|---|---|---|---|---|
| 1 | 2025-08-02 | 1 | 2 | 2 | 1 |
| 2 | 2025-08-03 | 3 | 4 | 0 | 0 |
| 3 | 2025-08-09 | 5 | 1 | 1 | 3 |
| 4 | 2025-08-10 | 2 | 3 | 2 | 2 |
| 5 | 2025-08-16 | 4 | 5 | 3 | 1 |
| 6 | 2025-08-17 | 1 | 3 | 1 | 0 |
| 7 | 2025-08-23 | 2 | 4 | 0 | 1 |
| 8 | 2025-08-24 | 3 | 5 | 2 | 3 |
| 9 | 2025-08-30 | 4 | 1 | 1 | 1 |
| 10 | 2025-08-31 | 5 | 2 | 0 | 2 |
Voir l’indice
Notions à utiliser : WHERE (filtres), COUNT, SUM, AVG, MIN, MAX.
Structure de la requête :
SELECT COUNT(*), SUM(… + …)
FROM …
WHERE … = …Voir la correction
SELECT COUNT(*), SUM(home_goals + away_goals)
FROM matches
WHERE home_goals = away_goals;Résultat attendu (1 ligne) :
| COUNT(*) | SUM(home_goals + away_goals) |
|---|---|
| 3 | 6 |
S’entraîner avec correction automatique
Dans SpeedQL, tu écris ta requête et elle est vérifiée tout de suite, sur ces tables puis sur un jeu de données caché.
S’entraîner sur les 7 questions « COUNT, SUM, AVG, MIN, MAX »