Comment Agréger les Données en SQL
L’agrégation des données en SQL permet de regrouper et de résumer des informations provenant de plusieurs enregistrements. Cela est particulièrement utile pour produire des rapports, des statistiques, ou des analyses sur des ensembles de données plus larges.
Qu’est-ce que l’agrégation de données ?
L’agrégation des données consiste à appliquer des fonctions d’agrégation à des ensembles de lignes pour produire un seul résultat par groupe. Par exemple, au lieu de lister toutes les ventes individuelles, vous pouvez utiliser l’agrégation pour calculer la somme totale des ventes, le nombre de ventes réalisées, ou la moyenne des montants de vente.
Fonctions d’agrégation principales
Les fonctions d’agrégation les plus couramment utilisées en SQL incluent :
- SUM() : Calcule la somme des valeurs d’une colonne numérique.
- AVG() : Calcule la moyenne des valeurs d’une colonne numérique.
- COUNT() : Compte le nombre d’enregistrements (lignes) dans un ensemble de résultats.
- MIN() : Trouve la valeur minimale dans une colonne.
- MAX() : Trouve la valeur maximale dans une colonne.
Exemple d’utilisation des fonctions d’agrégation
Supposons que vous ayez une table appelée ventes
qui contient les colonnes produit
, quantite
, et montant
. Voici comment vous pourriez utiliser certaines de ces fonctions d’agrégation :
- Calculer la somme des montants des ventes :
- Calculer la moyenne des montants des ventes :
- Compter le nombre total de ventes :
- Trouver le montant minimum et maximum des ventes :
Grouper les données avec GROUP BY
Pour appliquer des fonctions d’agrégation à des sous-ensembles de données, vous utilisez la clause GROUP BY
. Cette clause regroupe les lignes ayant des valeurs identiques dans les colonnes spécifiées, puis applique les fonctions d’agrégation sur chaque groupe.
Exemple d’utilisation de GROUP BY
Imaginons que vous vouliez savoir combien chaque produit a été vendu et quel est le montant total des ventes pour chaque produit. Vous pourriez utiliser la clause GROUP BY
comme suit :
Dans cet exemple :
- GROUP BY produit : Cela groupe les enregistrements par le nom du produit.
- SUM(quantite) et SUM(montant) : Ces fonctions d’agrégation calculent respectivement la quantité totale vendue et le montant total des ventes pour chaque produit.
Filtrer les groupes avec HAVING
Parfois, vous souhaitez filtrer les résultats après avoir appliqué les agrégations. Pour cela, vous utilisez la clause HAVING
. Contrairement à WHERE
, qui filtre les lignes avant l’agrégation, HAVING
filtre les groupes après l’agrégation.
Exemple d’utilisation de HAVING
Supposons que vous vouliez afficher uniquement les produits dont le montant total des ventes dépasse 1000 :
Dans cet exemple :
- HAVING SUM(montant) > 1000 : Cela filtre les groupes pour n’afficher que ceux dont le montant total des ventes est supérieur à 1000.
Agrégation sur plusieurs colonnes
Vous pouvez également grouper des données sur plusieurs colonnes pour des analyses plus détaillées. Par exemple, si vous souhaitez regrouper les ventes par produit et par mois :
Dans cet exemple :
- GROUP BY produit, MONTH(date_vente) : Cela regroupe les ventes par produit et par mois de vente.