AVG 函数返回输入表达式值的平均值(算术平均值)。AVG 函数使用数值并忽略 NULL 值。
语法
AVG ( [ DISTINCT | ALL ] expression )
参数
- expression
-
对其执行函数的目标列或表达式。表达式为以下数据类型之一:
SMALLINT
INTEGER
BIGINT
NUMERIC
DECIMAL
REAL
DOUBLE PRECISON
SUPER
- DISTINCT | ALL
-
利用参数 DISTINCT,该函数可在计算平均值之前消除指定表达式中的所有重复值。利用参数 ALL,该函数可保留表达式中的所有重复值以计算平均值。ALL 是默认值。
数据类型
AVG 函数支持的参数类型为 SMALLINT、INTEGER、BIGINT、NUMERIC、DECIMAL、REAL、DOUBLE PRECISION 和 SUPER。
AVG 函数支持的返回类型为:
-
适用于任何整数类型参数的 BIGINT
-
适用于浮点型参数的 DOUBLE PRECISION
返回与任何其他参数类型的表达式相同的数据类型。
带有 NUMERIC 或 DECIMAL 参数的 AVG 函数结果的默认精度为 38。结果的小数位数与参数的小数位数相同。例如,DEC(5,2) 列的 AVG 返回 DEC(38,2) 数据类型。
示例
从 SALES 表中查找每笔交易所售的平均产品数:
select avg(qtysold)from sales;
avg
-----
2
(1 row)
查找所有列表中列出的平均总价:
select avg(numtickets*priceperticket) as avg_total_price from listing;
avg_total_price
-----------------
3034.41
(1 row)
查找平均支付价格 (以降序顺序按月分组):
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)