Combine des lignes et des colonnes ayant des valeurs en commun en lignes uniques.
GROUP BY référence_de_colonne [, référence de colonne...]
Description
Utilisez une clause GROUP BY pour combiner des lignes ayant les mêmes valeurs que les colonnes en une seule colonne. Les critères pour combiner des lignes est fonction des valeurs dans les colonnes spécifiées dans la clause GROUP BY. L'objectif de l'utilisation d'une clause GROUP BY est de combiner une ou plusieurs valeurs de colonnes (agrégation) en une seule valeur et de fournir une ou plusieurs colonnes pour identifier de manière unique les valeurs agrégées. Une clause GROUP BY ne peut être utilisée que lorsqu'on applique une fonction agrégation à une ou plusieurs colonnes.
La valeur pour la clause GROUP BY est une liste séparée par virgules de colonnes. Chaque colonne de cette liste doit être conforme aux critères suivants :
Etre dans une des tables spécifiées dans la clause FROM de la requête.
Etre dans la clause SELECT de la requête.
Ne pas avoir une fonction agrégée appliquée.
Lorsqu'une clause GROUP BY est utilisée, toutes les colonnes des tables dans la clause SELECT de la requête doivent être conformes avec au moins un des critères suivants, autrement, elles ne peuvent pas être incluses dans la clause SELECT.
Etre dans la clause GROUP BY de la requête.
Etre l'objet d'une fonction agrégation.
Les valeurs constante dans la clause SELECT ne sont pas assujetties aux critères précédents.
La différenciation des lignes est fonction des colonnes dans la liste de colonnes spécifiée. Toutes les lignes ayant les mêmes valeurs dans ces colonnes sont combinées dans une seule ligne (ou groupe logique). Les colonnes objet d'une fonction agrégation combinent leurs valeurs sur toutes les lignes dans le groupe. Toutes les colonnes qui ne font pas l'objet d'une fonction agrégation retiennent leurs valeurs et servent à identifier le groupe de manière unique. Par exemple, dans l'instruction SELECT ci-dessous, les valeurs dans la colonne VENTES sont agrégées (totalisées) par groupes en fonction des valeurs différentes de la colonne SOCIETE. Ceci donne le total des ventes pour chaque société.
SELECT société, SUM(ventes) AS TOTALVENTES
FROM ventes1998
ORDER BY société
Une colonne peut être référencée dans une clause GROUP BY par un nom de corrélation de colonne, au lieu de noms de colonnes réels. L'instruction ci-dessous forme des groupes en utilisant la première colonne, SOCIETE, représentée par le nom de corrélation de colonne Soc.
SELECT société AS Soc, SUM(ventes) AS TOTALVENTES
FROM ventes1998
GROUP BY Soc
ORDER BY 1
Remarque Les valeurs dérivées (champs calculés) ne peuvent pas être utilisées comme base pour la clause GROUP BY.
Les références de colonnes ne peuvent pas être passées à une clause GROUP BY au moyen de paramètres.
Applicabilité
SELECT, lorsque des fonctions agrégation sont utilisées.