Retour au cours

Regroupement de Données avec GROUP BY et HAVING

Principes Fondamentaux des Bases de Données : De Zéro à Héros

Leçon 25 : Regroupement de Données avec GROUP BY et HAVING

Les fonctions d'agrégation résument généralement la table entière. La clause GROUP BY divise les lignes en groupes, vous permettant d'appliquer la fonction d'agrégation à * chaque groupe * individuellement.

Utilisation de GROUP BY

Pour voir des sous-totaux ou des données de résumé pour des catégories spécifiques, vous devez utiliser GROUP BY.

  • Règle : Toute colonne répertoriée dans l'instruction SELECT qui n'est pas une fonction d'agrégation doit être répertoriée dans la clause GROUP BY.

Exemple : Salaire Moyen par Département

sql SELECT Department, AVG(Salary) AS AverageSalary FROM Employees GROUP BY Department; -- Regroupe les résultats par nom de Département

Filtrage des Groupes avec HAVING

  • La clause WHERE filtre les lignes individuelles avant le regroupement.
  • La clause HAVING filtre les groupes après que le regroupement et l'agrégation ont eu lieu.

Exemple : Trouver les Départements avec plus de 5 employés

sql SELECT Department, COUNT(EmployeeID) AS EmployeeCount FROM Employees GROUP BY Department HAVING COUNT(EmployeeID) > 5; -- Filtre les groupes

L'Ordre Complet des Opérations

Dans une requête SQL standard, les clauses sont exécutées dans un ordre spécifique :

  1. FROM (Identifier les tables sources)
  2. WHERE (Filtrer les lignes individuelles)
  3. GROUP BY (Regrouper les lignes filtrées)
  4. HAVING (Filtrer les groupes résultants)
  5. SELECT (Déterminer quelles colonnes afficher)
  6. ORDER BY (Trier l'ensemble de résultats final)