La función AVG devuelve el promedio (media aritmética) de los valores de la expresión de entrada. La función AVG funciona con valores numéricos e ignora los valores NULL.
Sintaxis
AVG ( [ DISTINCT | ALL ] expression )
Argumentos
- expression
-
La columna o expresión de destino sobre la que opera la función. La expresión corresponde a uno de los siguientes tipos de datos:
SMALLINT
INTEGER
BIGINT
NUMERIC
DECIMAL
REAL
DOUBLE PRECISION
SUPER
- DISTINCT | ALL
-
Con el argumento DISTINCT, la función elimina todos los valores duplicados de la expresión especificada antes de calcular el promedio. Con el argumento ALL, la función retiene todos los valores duplicados de la expresión especificada para calcular el promedio. El valor predeterminado es ALL.
Tipos de datos
Los tipos de argumento compatibles con la función AVG son SMALLINT, INTEGER, BIGINT, NUMERIC, DECIMAL, REAL, DOUBLE PRECISION y SUPER.
Los tipos de retorno compatibles con la función AVG son los siguientes:
-
BIGINT para cualquier argumento de tipo entero
-
DOUBLE PRECISION para un argumento de punto flotante
Devuelve el mismo tipo de datos como expresión para cualquier otro tipo de argumento.
La precisión predeterminada para un resultado de la función AVG con un argumento NUMERIC o DECIMAL de es 38. La escala del resultado es la misma que la escala del argumento. Por ejemplo, una función AVG de una columna DEC(5,2) devuelve un tipo de datos DEC(38,2).
Ejemplos
Encontrar la cantidad promedio vendida por transacción de la tabla SALES:
select avg(qtysold)from sales;
avg
-----
2
(1 row)
Encontrar el precio total promedio en lista para todas las listas:
select avg(numtickets*priceperticket) as avg_total_price from listing;
avg_total_price
-----------------
3034.41
(1 row)
Encontrar el precio promedio pagado, agrupado por mes en orden descendiente:
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)