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 BYsuivie du nom de la colonne et de l'ordre de tri (ASCpour croissant,DESCpour décroissant). Par exemple,ORDER BY age DESCtrie les résultats par âge décroissant. -
Comment limiter le nombre de résultats retournés par une requête SQL ?
Utilisez la clauseLIMITsuivie du nombre maximum de résultats à retourner. Par exemple,LIMIT 10retourne les 10 premiers résultats. -
Comment renommer une colonne dans les résultats d'une requête SQL ?
Utilisez le mot-cléASsuivi du nouveau nom de la colonne. Par exemple,SUM(montant) AS totalrenomme la colonne de la somme des montants en 'total'.