Partie I
SQL de base
110
© Éditions Eyrolles
Fonctions de groupe
Nous étudions dans cette section les fonctions usuelles. D’autres sont proposées pour manipuler des cubes (datawarehouse).
Le tableau suivant présente les principales fonctions. L’option DISTINCT évite les duplicatas
(pris en compte sinon par défaut). À l’exception de COUNT, toutes les fonctions ignorent les
valeurs NULL (il faudra utiliser IFNULL pour contrer cet effet).
Utilisées sans GROUP BY, ces fonctions s’appliquent à la totalité ou à une seule partie d’une
table comme le montrent les exemples suivants :
Tableau 4-25 Fonctions de groupe
Fonction
Objectif
AVG([DISTINCT] expr)
Moyenne de expr (nombre).
COUNT({* | [DISTINCT ] expr})
Nombre de lignes (* toutes les lignes, expr pour les
colonnes non nulles).
GROUP_CONCAT(expr)
Composition d’un ensemble de valeurs.
MAX([DISTINCT] expr)
Maximum de expr (nombre, date, chaîne).
MIN([DISTINCT] expr)
Minimum de expr (nombre, date, chaîne).
STDDEV(expr)
Écart type de expr (nombre).
SUM([DISTINCT] expr)
Somme de expr (nombre).
VARIANCE(expr)
Variance de expr (nombre).
Tableau 4-26 Exemples de fonctions de groupe
Fonction
Exemples
AVG
Moyenne des heures de vol et des primes des pilotes de la compagnie 'AF'.
SELECT
,
FROM Pilote WHERE compa = 'AF';
+-------------+------------+
| AVG(nbHVol) | AVG(prime) |
+-------------+------------+
| 283.333333 |
550.0000 |
+-------------+------------+
COUNT
Nombre de pilotes, d’heures de vol et de primes (toutes et distinctes) recensées dans la
table.
SELECT
,
,
,
FROM Pilote;
+----------+---------------+--------------+-----------------------+
| COUNT(*) | COUNT(nbHVol) | COUNT(prime) | COUNT(DISTINCT prime) |
+----------+---------------+--------------+-----------------------+
|
6 |
5 |
4 |
3 |
+----------+---------------+--------------+-----------------------+
Web
AVG(nbHVol)
AVG(prime)
COUNT(*)
COUNT(nbHVol)
COUNT(prime)
COCOUNT(DISTINCT prime)
SQL de base
110
© Éditions Eyrolles
Fonctions de groupe
Nous étudions dans cette section les fonctions usuelles. D’autres sont proposées pour manipuler des cubes (datawarehouse).
Le tableau suivant présente les principales fonctions. L’option DISTINCT évite les duplicatas
(pris en compte sinon par défaut). À l’exception de COUNT, toutes les fonctions ignorent les
valeurs NULL (il faudra utiliser IFNULL pour contrer cet effet).
Utilisées sans GROUP BY, ces fonctions s’appliquent à la totalité ou à une seule partie d’une
table comme le montrent les exemples suivants :
Tableau 4-25 Fonctions de groupe
Fonction
Objectif
AVG([DISTINCT] expr)
Moyenne de expr (nombre).
COUNT({* | [DISTINCT ] expr})
Nombre de lignes (* toutes les lignes, expr pour les
colonnes non nulles).
GROUP_CONCAT(expr)
Composition d’un ensemble de valeurs.
MAX([DISTINCT] expr)
Maximum de expr (nombre, date, chaîne).
MIN([DISTINCT] expr)
Minimum de expr (nombre, date, chaîne).
STDDEV(expr)
Écart type de expr (nombre).
SUM([DISTINCT] expr)
Somme de expr (nombre).
VARIANCE(expr)
Variance de expr (nombre).
Tableau 4-26 Exemples de fonctions de groupe
Fonction
Exemples
AVG
Moyenne des heures de vol et des primes des pilotes de la compagnie 'AF'.
SELECT
,
FROM Pilote WHERE compa = 'AF';
+-------------+------------+
| AVG(nbHVol) | AVG(prime) |
+-------------+------------+
| 283.333333 |
550.0000 |
+-------------+------------+
COUNT
Nombre de pilotes, d’heures de vol et de primes (toutes et distinctes) recensées dans la
table.
SELECT
,
,
,
FROM Pilote;
+----------+---------------+--------------+-----------------------+
| COUNT(*) | COUNT(nbHVol) | COUNT(prime) | COUNT(DISTINCT prime) |
+----------+---------------+--------------+-----------------------+
|
6 |
5 |
4 |
3 |
+----------+---------------+--------------+-----------------------+
Web
AVG(nbHVol)
AVG(prime)
COUNT(*)
COUNT(nbHVol)
COUNT(prime)
COCOUNT(DISTINCT prime)
