Gérer et analyser de grandes quantités de données en SQL peut être complexe.
Sans une structure claire, produire des rapports précis est difficile, ce qui peut conduire à des erreurs coûteuses.
L’article explore comment GROUP BY et des fonctions d’agrégation simplifient l’analyse des données, rendant vos requêtes SQL plus efficaces.
Appréhendez les fondamentaux du langage SQL pour savoir assimiler ses fonctions standards.

Comprendre la commande GROUP BY SQL
Voici la syntaxe générale de la commande :
SELECT champ1, fonction(champ2) [AS] alias1
FROM nom_table
GROUP BY champ1;
Fonction | Description |
---|---|
COUNT() | Compte le nombre de lignes qui correspondent à une condition. |
SUM() | Calcule la somme des valeurs d’une colonne numérique. |
AVG() | Calcule la moyenne des valeurs d’une colonne numérique. |
MIN() | Renvoie la valeur minimale d’une colonne. |
MAX() | Renvoie la valeur maximale d’une colonne. |
Tableau 4 : les principales fonctions d’agrégation en SQL
Voici les exemples d’utilisation des fonctions d’agrégation en SQL, accompagnés d’explications et des résultats attendus :
- Fonction AVG()
Exemple :
SELECT fonction, AVG(salaire) AS moyenne_salaire
FROM employes
GROUP BY fonction;
Explication :
Cette requête sélectionne la fonction de chaque employé et calcule la moyenne des salaires pour chaque fonction. La clause GROUP BY regroupe les résultats par fonction, permettant ainsi de calculer la moyenne de salaire pour chaque groupe.
Résultat :
Le résultat affichera deux colonnes : fonction et moyenne_salaire, où chaque ligne correspond à une fonction unique et sa moyenne des salaires.
- Fonction COUNT()
Exemple :
SELECT fonction, COUNT(*) AS Nombre_employe
FROM employes
GROUP BY fonction;
Explication :
Cette requête compte le nombre d’employés pour chaque fonction dans la table employes. La fonction COUNT(*) compte toutes les lignes dans chaque groupe de la fonction, tandis que GROUP BY regroupe les résultats par fonction.
Résultat :
Le résultat affichera deux colonnes : fonction et Nombre_employe, où chaque ligne indique le nombre d’employés par fonction.
- Fonctions MAX() et MIN()
Exemple :
SELECT
MAX(salaire) AS salaire_le_plus_eleve,
MIN(salaire) AS salaire_le_plus_petit
FROM employes;
Explication :
Cette requête retourne le salaire le plus élevé et le plus bas parmi tous les employés dans la table employes. MAX(salaire) trouve le salaire maximum, tandis que MIN(salaire) trouve le salaire minimum.
Résultat :
Le résultat affichera deux colonnes : salaire_le_plus_eleve et salaire_le_plus_petit .
- Fonction SUM()
Exemple :
SELECT fonction, SUM(salaire) AS total_salaire
FROM employes
GROUP BY fonction;
Explication :
Cette requête calcule le total des salaires pour chaque fonction. La fonction SUM(salaire) additionne tous les salaires dans chaque groupe de fonction, et GROUP BY regroupe les résultats par fonction.
Résultat :
Le résultat affichera deux colonnes : fonction et total_salaire , où chaque ligne représente la somme des salaires des employés par fonction.
- La Clause HAVING
- Syntaxe :
SELECT champ1, fonction(champ2) [AS] alias1
FROM nom_table
GROUP BY champ1
HAVING condition;
Explication de la Syntaxe
- champ1 :La colonne par laquelle vous voulez regrouper les résultats.
- fonction(champ2) :Une fonction d’agrégation (comme COUNT, SUM, AVG, etc.) appliquée à une autre colonne.
- alias1 :Un alias pour la colonne calculée, qui rend le résultat plus lisible.
- condition :Une condition qui doit être vraie pour que les groupes soient inclus dans le résultat final.
- Exemple d’utilisation de la clause HAVING
SELECT fonction,
SUM(salaire) AS total_salaire,
AVG(salaire) AS Moyenne_Salaire
FROM employes
GROUP BY fonction
HAVING AVG(salaire) > 5000;
Explication :
- SELECT fonction :Sélectionne le champ fonction de la table employes.
- SUM(salaire) AS total_salaire :Calcule la somme des salaires pour chaque fonction et lui donne l’alias total_salaire.
- AVG(salaire) AS Moyenne_Salaire :Calcule la moyenne des salaires pour chaque fonction et lui donne l’alias Moyenne_Salaire.
- FROM employes :Indique que les données proviennent de la table employes.
- GROUP BY fonction :Regroupe les résultats par fonction, ce qui signifie que les calculs (somme et moyenne) seront effectués pour chaque groupe de fonction.
- HAVING AVG(salaire) > 5000 :Filtre les résultats pour ne retourner que les fonctions dont la moyenne des salaires est supérieure à 5000.
- Résultat :
La requête affichera toutes les fonctions où la moyenne des salaires est supérieure à 5000, avec le total des salaires et la moyenne des salaires pour chaque fonction correspondante.
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Comment fonctionne la commande GROUP BY en SQL?
Quelle est la différence entre WHERE et HAVING?
Quand utiliser HAVING dans une requête SQL?
Quels sont les exemples de fonctions d'agrégation?
Pourquoi utiliser GROUP BY avec des fonctions d'agrégation?
Conclusion
La commande GROUP BY en SQL est un outil puissant pour structurer et analyser vos données efficacement. Quel aspect de GROUP BY souhaitez-vous approfondir dans vos projets SQL?