MySQL GROUP BY
La clause GROUP BY est utilisée pour regrouper des lignes ayant les mêmes valeurs, et est utilisée dans l’instruction SELECT avec des fonctions d’agrégation telles que COUNT, SUM, MIN, MAX, AVG etc. et ne renvoient qu’une seule ligne pour chaque élément groupé.
Syntaxe:
SELECT colonne1, colonne2, ... colonne_n, aggregate_function (colonne) FROM tables [WHERE conditions] GROUP BY colonne1, colonne2, ... colonne_n;
La clause GROUP BY avec la fonction COUNT
Considérons la table « Clients », ayant les enregistrements suivants.
Maintenant, comptons le nombre de villes en double.
SELECT Adresse, COUNT(*) FROM Clients GROUP BY Adresse;
La clause GROUP BY avec la fonction SUM
Prenons la table « Employee », avec les données suivantes.
Maintenant, la requête suivante va grouper les enregistrements à l’aide de la fonction SUM et renvoyer le nom et le nombre total d’heures de travail de chaque employé.
SELECT Nom, SUM(heure_travail) AS "Heures de travail totale" FROM Employee GROUP BY Nom;
La clause GROUP BY avec la fonction MIN
L’exemple suivant affiche les heures de travail minimales des employés.
SELECT Nom, MIN(heure_travail) AS "Heure de travail minimum" FROM Employee GROUP BY Nom;
La clause GROUP BY avec la fonction MAX
L’exemple suivant affiche les heures de travail maximums des employés.
SELECT Nom, MAX(heure_travail) AS "Heure de travail maximum" FROM Employee GROUP BY Nom;
La clause GROUP BY avec la fonction AVG
L’exemple suivant affiche la moyenne des heures de travail des employés.
SELECT Nom, AVG(heure_travail) AS "Moyenne des heures de travail" FROM Employee GROUP BY Nom;