SQL Obtenir un résultat agrégé pour les groupes de lignes


Exemple

Comptage des lignes en fonction d'une valeur de colonne spécifique:

SELECT category, COUNT(*) AS item_count
FROM item
GROUP BY category;

Obtenir un revenu moyen par département:

SELECT department, AVG(income)
FROM employees
GROUP BY department;

L'important est de ne sélectionner que les colonnes spécifiées dans la clause GROUP BY ou utilisées avec les fonctions d'agrégat .


La clause WHERE peut également être utilisée avec GROUP BY , mais WHERE filtre les enregistrements avant tout regroupement:

SELECT department, AVG(income)
FROM employees
WHERE department <> 'ACCOUNTING'
GROUP BY department;

Si vous devez filtrer les résultats après le regroupement, par exemple pour ne voir que les départements dont le revenu moyen est supérieur à 1000, vous devez utiliser la clause HAVING :

SELECT department, AVG(income)
FROM employees
WHERE department <> 'ACCOUNTING'
GROUP BY department
HAVING avg(income) > 1000;