本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AVG 函數傳回輸入表達式值的平均值 (算術平均數)。AVG 函數處理數值,且忽略 NULL 值。
語法
AVG ( [ DISTINCT | ALL ] expression )
引數
- expression
-
函數運算的目標欄或表達式。expression 是下列其中一種資料類型:
SMALLINT
INTEGER
BIGINT
NUMERIC
DECIMAL
REAL
DOUBLE PRECISION
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)