Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
La fonction AVG renvoie la moyenne (arithmétique) des valeurs d’expression d’entrée. La fonction AVG utilise des valeurs numériques et ignore les valeurs NULL.
Syntaxe
AVG ( [ DISTINCT | ALL ] expression )
Arguments
- expression
-
Colonne cible ou expression sur laquelle la fonction opère. L’expression est l’un des types de données suivants :
SMALLINT
INTEGER
BIGINT
NUMERIC
DECIMAL
REAL
DOUBLE PRECISON
SUPER
- DISTINCT | ALL
-
Avec l’argument DISTINCT, la fonction supprime toutes les valeurs en double dans l’expression spécifiée avant de calculer la moyenne. Avec l’argument ALL, la fonction conserve toutes les valeurs en double de l’expression pour calculer la moyenne. La valeur par défaut est ALL.
Types de données
Les types d’argument pris en charge par la fonction AVG sont SMALLINT, INTEGER, BIGINT, NUMERIC, DECIMAL, REAL, DOUBLE PRECISION et SUPER.
Les types de retour pris en charge par la fonction AVG sont les suivants :
-
BIGINT pour tout argument de type nombre entier
-
DOUBLE PRECISION pour un argument à virgule flottante
Renvoie le même type de données que l’expression pour tout autre type d’argument.
La précision par défaut d’un résultat de fonction AVG avec un argument NUMERIC ou DECIMAL est de 38. L’échelle du résultat est identique à celle de l’argument. Par exemple, une fonction AVG d’une colonne DEC(5,2) renvoie un type de données DEC(38,2).
Exemples
Recherchez la quantité moyenne vendue par transaction dans la table SALES :
select avg(qtysold)from sales;
avg
-----
2
(1 row)
Recherchez le prix total moyen répertorié dans toutes les listes :
select avg(numtickets*priceperticket) as avg_total_price from listing;
avg_total_price
-----------------
3034.41
(1 row)
Recherchez le prix moyen payé, regroupé par mois par ordre décroissant :
select avg(pricepaid) as avg_price, month
from sales, date
where sales.dateid = date.dateid
group by month
order by avg_price desc;
avg_price | month
-----------+-------
659.34 | MAR
655.06 | APR
645.82 | JAN
643.10 | MAY
642.72 | JUN
642.37 | SEP
640.72 | OCT
640.57 | DEC
635.34 | JUL
635.24 | FEB
634.24 | NOV
632.78 | AUG
(12 rows)