Les langages SQL Compter et regrouper
GROUP BY et HAVING
GROUP BY découpe la table en paquets et calcule dans chacun :
SELECT secteur, count(*)
FROM clients
GROUP BY secteur;
Une ligne par secteur. Les clients sans secteur forment leur propre groupe,
celui de NULL.
La règle à retenir
Toute colonne affichée à côté d'un calcul doit figurer dans le GROUP BY :
il y a un secteur par groupe, mais plusieurs prénoms.
Filtrer les groupes : HAVING
WHERE filtre les lignes, avant le regroupement. HAVING filtre les
groupes, après le calcul :
SELECT secteur, count(*) AS effectif
FROM clients
GROUP BY secteur
HAVING count(*) >= 2;
L'ordre complet d'une requête
SELECT les colonnes et les calculs
FROM la table
WHERE filtre les lignes
GROUP BY forme les groupes
HAVING filtre les groupes
ORDER BY trie le résultat
LIMIT coupe la liste
2 exercices pour cette lecon
Les exercices demandent un compte : il faut bien enregistrer votre progression quelque part. La lecture, elle, reste libre. Creer un compte
-
Clients par secteur moyen lecon a valider
-
Les secteurs bien représentés moyen lecon a valider