15 minutes de SQL
Compter et calculer MIN/MAX/SUM/AVG
Fonctions d’agrégation
Les fonctions d’agrégation permettent de calculer une valeur globale à partir des données d’une table.
Contrairement à une requête classique qui renvoie plusieurs lignes, une requête contenant uniquement une fonction d’agrégation renvoie en général une seule ligne.
-
COUNT(*): renvoie le nombre total de lignes de la table. -
MIN(colonne): renvoie la plus petite valeur de la colonne. -
MAX(colonne): renvoie la plus grande valeur de la colonne. -
SUM(colonne): renvoie la somme des valeurs de la colonne. -
AVG(colonne): renvoie la moyenne des valeurs de la colonne.
Si la requête ne contient que des fonctions d’agrégation, le résultat est une table comportant une seule ligne.
On peut les combiner avec WHERE pour ne travailler que sur certaines lignes.
Exemples commentés
SELECT AVG(prix_cafe)
FROM cafes;
On dispose d'une base de données films et, dans cette base, de la table suivante :
films(film_id, film_titre, annee_sortie, realisateur, budget, box_office, notes_imdb)
On veut calculer le budget moyen des films sortis à partir de 2015.
La clause WHERE permet de ne garder que les lignes correspondant à ces films.
SELECT AVG(budget)
FROM films
WHERE annee_sortie >= 2015;
On dispose d'une base de données triangles et, dans cette base, de la table suivante :
triangles(idt, ab, ac, bc)
On veut compter le nombre de triangles équilatéraux, c’est-à-dire ceux pour lesquels
ab = ac et ac = bc.
La requête renverra une seule valeur : le nombre de lignes qui vérifient cette condition.
SELECT COUNT(*)
FROM triangles
WHERE ab = ac AND ac = bc;
On dispose d'une base de données stocks et, dans cette base, des tables suivantes :
articles(id_article, nom, categorie, prix)mouvements(id_mvt, id_article, date_mvt, quantite, type)
On veut déterminer le prix minimal et le prix maximal parmi tous les articles,
à partir de la colonne prix de la table articles.
SELECT MIN(prix), MAX(prix)
FROM articles;
On dispose d'une base de données boutique et, dans cette base, des tables suivantes :
clients(id_client, nom, ville)commandes(id_commande, id_client, date_commande)produits(id_produit, nom, categorie, prix)lignes_commande(id_commande, id_produit, quantite)
On veut compter le nombre total de lignes de commande.
Attention : chaque ligne correspond à un produit présent dans une commande (avec une quantité),
donc on compte les lignes de la table lignes_commande.
SELECT COUNT(*)
FROM lignes_commande;
Et pour quelques minutes de plus…
Prendre en main la programmation, pas à pas.
Ces exercices sont conçus pour t’aider à maîtriser progressivement les requêtes SQL, en partant de la lecture et de la compréhension du code, jusqu’à l’écriture autonome de requêtes complètes.
L’objectif n’est pas d’aller vite, mais de construire des automatismes solides, en comprenant ce que fait chaque commande, puis en apprenant à les utiliser par toi-même.
L’ordre des exercices est volontaire : on lit, on comprend, on complète, puis on écrit seul. Prends le temps de chaque étape : c’est la clé pour progresser durablement.
Niveau 1 Lire et interpréter
Comprendre avant d’écrire.
Dans cette première série, tu observes et analyses des requêtes SQL déjà écrites.
L’objectif est de comprendre la logique et d’être capable d'expliquer ce que renvoie la requête.
Niveau 2 Compléter une requête
Écrire, mais avec un cadre.
Ici, tu passes à l’écriture sans partir de zéro.
Le squelette de la requête est fourni : il te reste à compléter certaines parties
pour que le code fonctionne correctement.
Ce format permet de se concentrer sur l’essentiel, sans se perdre dans la structure générale.
Niveau 3 Écrire une requête
Passer à l’autonomie.
Dans cette dernière série, tu écris les requêtes complètes à partir d’une consigne.
Tu dois organiser ton code, choisir les bonnes instructions et construire la logique globale.
C’est ici que tu mets en pratique tout ce que tu as appris dans les niveaux précédents.
Contenu réservé aux membres
Les exercices interactifs et le feedback IA sont réservés aux membres.
On dispose d'une base de données
cafeset, dans cette base, de la table suivante :cafes(nom, adresse, arrondissement, prix_cafe)On veut calculer le prix moyen d’un café (colonne
prix_cafe).