AVG 函數 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

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)