Le distributeur du foyer
Le distributeur du foyer vend des boissons et des snacks. La table garde, pour chaque produit, son prix et le nombre en stock.
Le responsable pose trois questions. Combien de produits ? Combien d'articles en stock ? Quel est le prix moyen ?
Chaque réponse est un seul nombre, pas une liste. Il faut un nouvel outil.
Mots-clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Fonction d'agrégation | Une fonction qui résume plusieurs lignes en une seule valeur. | COUNT, SUM, AVG, MIN, MAX |
| COUNT | Compte les lignes. | COUNT(*) |
| SUM | Additionne les valeurs d'une colonne. En français : la somme. | SUM(quantite) |
| AVG | Donne la moyenne des valeurs d'une colonne. | AVG(prix) |
| MIN | Donne la plus petite valeur. | MIN(prix) |
| MAX | Donne la plus grande valeur. | MAX(prix) |
| Moyenne | La somme des valeurs, divisée par leur nombre. | La moyenne de 1 et 2 est 1,5. |
| Alias | Un autre nom donné à un résultat, avec AS. | COUNT(*) AS nombre |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Résumer au lieu de lister
Jusqu'ici, une requête rendait autant de lignes qu'il y avait de réponses.
Avec une fonction d'agrégation, la base lit toutes les lignes, puis rend une seule ligne : le résumé.
On écrit la fonction après SELECT, avec la colonne entre parenthèses.
À toi : compter et additionner
-- COUNT(*) compte les lignes.
SELECT COUNT(*) FROM produits;
-- SUM additionne les valeurs d'une colonne.
SELECT SUM(quantite) FROM produits;
-- Essaie : SELECT MAX(prix) FROM produits;
Exemple travaillé : la table produits
| id | produit | categorie | prix | quantite |
|---|---|---|---|---|
| 1 | Jus de pomme | boisson | 1.5 | 10 |
| 2 | Eau | boisson | 1.0 | 25 |
| 3 | Barre céréale | snack | 1.5 | 12 |
| 4 | Cookie | snack | 2.5 | 8 |
| 5 | Chips | snack | 2.0 | 6 |
| 6 | Soda | boisson | 2.0 | 5 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
À toi : calcule de tête
À toi de jouer
À toi : calcule de tête
3 questionsTes réponses sont corrigées ici et ne sont pas conservées. Un compte garde tes résultats.
Exemple travaillé : les cinq fonctions
| Fonction | Ce qu'elle donne | Résultat ici |
|---|---|---|
| COUNT(*) | Le nombre de lignes | 6 |
| SUM(quantite) | L'addition des quantités | 66 |
| AVG(prix) | La moyenne des prix : 10.5 divisé par 6 | 1.75 |
| MIN(prix) | Le plus petit prix | 1.0 |
| MAX(prix) | Le plus grand prix | 2.5 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
À toi : les cinq d'un coup
-- Cinq fonctions dans une seule requête. AS nomme chaque résultat.
SELECT COUNT(*) AS nombre,
SUM(quantite) AS total_en_stock,
AVG(prix) AS prix_moyen,
MIN(prix) AS moins_cher,
MAX(prix) AS plus_cher
FROM produits;
Résumer une partie des lignes
Tu peux résumer seulement certaines lignes. Ajoute un WHERE.
La base filtre d'abord, puis elle calcule sur les lignes restantes. Ainsi, tu peux compter seulement les snacks.