Un agrégat est un partitionnement horizontal d'une table en sous-tables, en fonction des valeurs d'un ou plusieurs attributs de partitionnement, suivi éventuellement de l'application d'une fonction de calcul à chaque attribut des sous-tables obtenues.
Synonyme : Regroupement
SELECT liste d'attributs de partionnement à projeter et de fonctions de calcul
FROM liste de relations
WHERE condition à appliquer avant calcul de l'agrégat
GROUP BY liste ordonnée d'attributs de partitionnement
La table est divisée en sous-ensembles de lignes, avec un sous-ensemble pour chaque valeur différente des attributs de partitionnement projetés dans le SELECT
Les fonctions d'agrégation sont appliquées sur les attributs concernés
SELECT Societe.Nom, AVG(Personne.Age)
FROM Personne, Societe
WHERE Personne.NomSoc = Societe.Nom
GROUP BY Societe.Nom
Societe.Nom est un ici le seul attribut de partitionnement, donc un sous ensemble est créé pour chaque valeur différente de Societe.Nom, puis la moyenne (fonction AVG) est effectuée pour chaque sous-ensemble.
SELECT Societe.Nom, Societe.Dpt AVG(Personne.Age)
FROM Personne, Societe
WHERE Personne.NomSoc = Societe.Nom
GROUP BY Societe.Nom, Societe.Dpt
Societe.Nom et Societe.Dpt sont les deux attributs de partitionnement, donc un sous-ensemble est créé pour chaque valeur différente du couple (Societe.Nom,Societe.Dpt).