本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AVG 函數
AVG 函數會傳回輸入表達式值的平均值 (算術平均值)。AVG 函數使用數值並忽略NULL值。
語法
AVG ( [ DISTINCT | ALL ] expression )
引數
- 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)