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.