Le tableau du tournoi
Le tournoi entre classes a trois équipes : les Rouges, les Bleus et les Verts. Dix joueurs ont marqué des buts.
Le tableau d'affichage doit montrer un total par équipe. Pas dix lignes : trois.
Tu sais déjà additionner tous les buts. Maintenant, il faut additionner équipe par équipe.
Mots-clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| GROUP BY | Les mots qui rangent les lignes en paquets, un paquet par valeur d'une colonne. | GROUP BY equipe |
| Groupe | Un paquet de lignes qui ont la même valeur dans la colonne choisie. | Toutes les lignes des Rouges. |
| HAVING | Le mot qui garde seulement certains paquets, après leur calcul. | HAVING SUM(buts) >= 6 |
| Fonction d'agrégation | Une fonction comme COUNT ou SUM, qui résume des lignes en une valeur. | SUM(buts) |
| WHERE | Le mot qui garde certaines lignes, avant de faire les paquets. | WHERE buts > 0 |
| Total | Le résultat d'une addition. | 6 buts pour les Rouges. |
| Colonne de regroupement | La colonne dont on fait un paquet par valeur. | equipe |
| Résumé | Une ligne du résultat qui représente tout un paquet. | Rouges, 6 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Faire des paquets
Imagine dix jetons de trois couleurs. Tu les ranges en trois tas, un par couleur. Ensuite, tu comptes chaque tas.
C'est ce que fait GROUP BY. La base fait un paquet par équipe. La fonction, comme SUM, résume ensuite chaque paquet.
Tu obtiens une ligne par paquet.
À toi : un total par équipe
-- GROUP BY fait un paquet par équipe.
-- SUM additionne les buts dans chaque paquet.
SELECT equipe, SUM(buts) AS total_buts
FROM buteurs
GROUP BY equipe;
-- Sans GROUP BY, tu obtiendrais une seule ligne pour tout le tournoi.
Exemple travaillé : les trois paquets
| equipe | Les lignes du paquet (buts) | Calcul | Résumé |
|---|---|---|---|
| Rouges | Emma 3, Nina 1, Manon 2, Louis 0 | 3 + 1 + 2 + 0 | 6 |
| Bleus | Hugo 2, Sara 0, Yanis 3 | 2 + 0 + 3 | 5 |
| Verts | Lucas 4, Jules 1, Camille 2 | 4 + 1 + 2 | 7 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
À toi : devine le résultat
À toi de jouer
À toi : devine le résultat
3 questionsTes réponses sont corrigées ici et ne sont pas conservées. Un compte garde tes résultats.
Plusieurs résumés à la fois
Dans un même SELECT, tu peux mettre plusieurs fonctions : le nombre de joueurs, le total et le meilleur score.
Tu peux aussi trier le résultat avec ORDER BY, comme avant. On peut même trier selon un alias, ici total_buts.
À toi : trois résumés
-- Trois résumés par équipe.
SELECT equipe,
COUNT(*) AS joueurs,
SUM(buts) AS total_buts,
MAX(buts) AS meilleur_score
FROM buteurs
GROUP BY equipe
ORDER BY total_buts DESC;
Que mettre après SELECT ?
Attention
Avec GROUP BY, tu peux écrire après SELECT : la colonne de regroupement, ou une fonction. Une autre colonne, comme joueur, n'a pas de sens : un paquet contient plusieurs joueurs. Laquelle montrer ?