Aller au contenu

Fonctions d'agrégation#

essentiel

Fonction Description
COUNT(*) / COUNT(x) / COUNT(DISTINCT x) Nombre de lignes/valeurs essentiel
SUM(x) Somme essentiel
AVG(x) Moyenne essentiel
MIN(x) / MAX(x) Minimum / maximum essentiel
GROUP_CONCAT(x [, separateur]) Concatène les valeurs (défaut ,) courant
TOTAL(x) Comme SUM mais retourne toujours un REAL (0.0 si vide) avancé

Exemples#

SELECT COUNT(*) FROM etudiants;
SELECT ville, AVG(age) FROM etudiants GROUP BY ville;
SELECT GROUP_CONCAT(nom, '; ') FROM etudiants;
SELECT COUNT(DISTINCT ville) FROM etudiants;

COUNT(*) vs COUNT(colonne)

COUNT(*) compte les lignes ; COUNT(colonne) ignore les NULL. De même, AVG et SUM ignorent les NULL.

FILTER avancé#

Agrégats conditionnels sans sous-requête (SQLite ≥ 3.30).

SELECT
  COUNT(*) FILTER (WHERE age >= 18) AS majeurs,
  COUNT(*) FILTER (WHERE age < 18) AS mineurs
FROM etudiants;

Équivalent portable : SUM(CASE WHEN age >= 18 THEN 1 ELSE 0 END).

SQLite

SUM() retourne NULL si aucune ligne / toutes valeurs NULL ; TOTAL() retourne 0.0 dans ce cas.