Les fonctions d'agrégation calculent une seule valeur à partir d'un ensemble de lignes — COUNT, SUM, AVG, MIN, . Elles sont essentielles pour résumer les données (totaux, moyennes, comptages), particulièrement combinées avec .
Les fonctions d'agrégation calculent une seule valeur à partir d'un ensemble de lignes — COUNT, SUM, AVG, MIN, . Elles sont essentielles pour résumer les données (totaux, moyennes, comptages), particulièrement combinées avec .
MAXGROUP BYSELECT
COUNT(*) AS total_rows, -- count all rows
COUNT(email) AS rows_with_email, -- count NON-NULL emails (ignores NULLs!)
SUM(amount) AS total_amount, -- sum of a column
AVG(price) AS average_price, -- average
MIN(price) AS lowest, -- minimum
MAX(price) AS highest -- maximum
FROM orders;
Chaque fonction réduit plusieurs lignes à une seule valeur. SUM/AVG fonctionnent sur les nombres ; MIN/MAX sur les nombres, dates ou texte ; COUNT sur n'importe quoi.
COUNT(*) -- counts ALL rows (including those with NULLs)
COUNT(email) -- counts only rows where email is NOT NULL
COUNT(DISTINCT country) -- counts UNIQUE non-null values
COUNT(*) compte toutes les lignes, mais COUNT(column) compte uniquement les lignes où cette colonne n'est pas NULL — une distinction subtile mais importante. COUNT(DISTINCT col) compte les valeurs uniques.
-- aggregate PER GROUP instead of the whole table
SELECT country, COUNT(*) AS users, AVG(age) AS avg_age
FROM users
GROUP BY country; -- one result row per country
-- → for each country: how many users and their average age
Sans GROUP BY, une agrégation résume le résultat entier en une seule ligne. Avec GROUP BY, elle produit une ligne de résumé par groupe — l'utilisation typique et puissante.
-- ❌ ERROR — can't mix an aggregate with a non-grouped column
SELECT name, COUNT(*) FROM users; -- which name? ambiguous
-- ✅ either group by it, or only select aggregates
SELECT country, COUNT(*) FROM users GROUP BY country;
Les fonctions d'agrégation sont essentielles pour résumer et analyser les données — calculer des totaux, des moyennes, des comptages et des extrêmes est un besoin constant en rapports, analyses, tableaux de bord et logique applicative, donc les comprendre est une connaissance SQL fondamentale.
Connaître les principales fonctions (COUNT, SUM, AVG, MIN, MAX) et comment elles réduisent des ensembles de lignes à des valeurs uniques est nécessaire pour toute résumé de données.
Un détail important et souvent mal compris est la distinction entre COUNT(*) et COUNT(column) (COUNT(*) compte toutes les lignes, COUNT(column) compte uniquement les valeurs non-NULL — ce qui peut donner des résultats différents et surprenants), ainsi que COUNT(DISTINCT) pour les valeurs uniques.
Plus puissamment, les agrégations se combinent avec GROUP BY pour produire des résumés par groupe (comptages/moyennes par catégorie) — la base des requêtes analytiques.
Comprendre le piège que vous ne pouvez pas mélanger les agrégations avec des colonnes non groupées (une erreur courante) est aussi important.
Puisque résumer les données est une tâche de base de données omniprésente (chaque rapport, tableau de bord et requête analytique utilise des agrégations), et puisque comprendre les fonctions, les subtilités de COUNT, et surtout leur combinaison avec GROUP BY est fondamental pour l'analyse de données en SQL, maîtriser les fonctions d'agrégation est une connaissance fondamentale, fréquemment appliquée et essentielle pour travailler avec les données — reliant les requêtes de base et la puissance analytique et résumée qui rend SQL précieux pour les rapports et les insights.