Numérique et Sciences Informatiques > Bases de Données > Langage SQL (Structured Query Language) > Fonctions d'agrégation (COUNT, SUM, AVG, MIN, MAX)
Exercices Corrigés : Fonctions d'Agrégation SQL
Mettez en pratique vos connaissances sur les fonctions d'agrégation SQL (COUNT, SUM, AVG, MIN, MAX) avec une série d'exercices corrigés, conçus pour les élèves de lycée en NSI. Améliorez vos compétences avec des exemples concrets.
Exercice 1 : Statistiques sur les élèves
Soit une table Eleves
avec les colonnes id
(INT, clé primaire), nom
(VARCHAR), age
(INT), et classe
(VARCHAR). Écrivez les requêtes SQL pour :
Correction Exercice 1
Voici les requêtes SQL pour résoudre l'exercice 1 :
SELECT COUNT(*) FROM Eleves;
SELECT AVG(age) FROM Eleves;
SELECT MIN(age), MAX(age) FROM Eleves;
SELECT classe, COUNT(*) FROM Eleves GROUP BY classe;
Exercice 2 : Analyse des ventes
Soit une table Ventes
avec les colonnes id
(INT, clé primaire), produit
(VARCHAR), quantite
(INT), et prix_unitaire
(DECIMAL). Écrivez les requêtes SQL pour :
Correction Exercice 2
Voici les requêtes SQL pour résoudre l'exercice 2 :
SELECT SUM(quantite * prix_unitaire) FROM Ventes;
SELECT produit, SUM(quantite) FROM Ventes GROUP BY produit ORDER BY SUM(quantite) DESC LIMIT 1;
SELECT AVG(prix_unitaire) FROM Ventes;
SELECT produit, SUM(quantite * prix_unitaire) AS chiffre_affaires FROM Ventes GROUP BY produit HAVING chiffre_affaires > 1000;
Exercice 3 : Gestion des commandes
Soit une table Commandes
avec les colonnes id_commande
(INT, clé primaire), id_client
(INT, clé étrangère référençant une table Clients), date_commande
(DATE), et montant
(DECIMAL). Écrivez les requêtes SQL pour :
Correction Exercice 3
Voici les requêtes SQL pour résoudre l'exercice 3 :
SELECT COUNT(*) FROM Commandes;
SELECT id_client, SUM(montant) FROM Commandes GROUP BY id_client;
SELECT id_client, SUM(montant) AS total_depense FROM Commandes GROUP BY id_client ORDER BY total_depense DESC LIMIT 1;
SELECT date_commande, AVG(montant) FROM Commandes GROUP BY date_commande;
Ce qu'il faut retenir
GROUP BY
et ORDER BY
est essentielle pour répondre à des questions complexes.LIMIT
permet de sélectionner un nombre limité de résultats (par exemple, le client qui a le plus dépensé).AS
) permettent de renommer les colonnes pour une meilleure lisibilité.
FAQ
-
Comment trier les résultats d'une requête SQL ?
Utilisez la clauseORDER BY
suivie du nom de la colonne et de l'ordre de tri (ASC
pour croissant,DESC
pour décroissant). Par exemple,ORDER BY age DESC
trie les résultats par âge décroissant. -
Comment limiter le nombre de résultats retournés par une requête SQL ?
Utilisez la clauseLIMIT
suivie du nombre maximum de résultats à retourner. Par exemple,LIMIT 10
retourne les 10 premiers résultats. -
Comment renommer une colonne dans les résultats d'une requête SQL ?
Utilisez le mot-cléAS
suivi du nouveau nom de la colonne. Par exemple,SUM(montant) AS total
renomme la colonne de la somme des montants en 'total'.