Easier to read with cream paper, a tint, more contrast or larger text? Choose your colours and text, once, for every page.

Aperçu

Regrouper

Voici la première page de la leçon. Lis-la et essaie les activités. La suite est dans le cours complet.

40 minutes

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

MotCe que ça veut direExemple
GROUP BYLes mots qui rangent les lignes en paquets, un paquet par valeur d'une colonne.GROUP BY equipe
GroupeUn paquet de lignes qui ont la même valeur dans la colonne choisie.Toutes les lignes des Rouges.
HAVINGLe mot qui garde seulement certains paquets, après leur calcul.HAVING SUM(buts) >= 6
Fonction d'agrégationUne fonction comme COUNT ou SUM, qui résume des lignes en une valeur.SUM(buts)
WHERELe mot qui garde certaines lignes, avant de faire les paquets.WHERE buts > 0
TotalLe résultat d'une addition.6 buts pour les Rouges.
Colonne de regroupementLa 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

Code: sql
-- 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

equipeLes lignes du paquet (buts)CalculRésumé
RougesEmma 3, Nina 1, Manon 2, Louis 03 + 1 + 2 + 06
BleusHugo 2, Sara 0, Yanis 32 + 0 + 35
VertsLucas 4, Jules 1, Camille 24 + 1 + 27

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 questions
Essayez : vos réponses sont notées ici puis oubliées. Connectez-vous si vous voulez conserver votre score et reprendre là où vous en étiez.Se connecter pour conserver mon score

Tes 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

Code: sql
-- 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 ?

La leçon continue

8 parties de plus de cette leçon se trouvent dans le cours complet, avec les exercices et la vérification finale. Un compte te donne tout.