STDDEV_SAMP 和 STDDEV_POP 視窗函數 - Amazon Redshift

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

STDDEV_SAMP 和 STDDEV_POP 視窗函數

STDDEV_SAMP 和 STDDEV_POP 視窗函數傳回一組數值 (整數、小數或浮點數) 的樣本標準差和母體標準差。另請參閱 STDDEV_SAMP 和 STDDEV_POP 函數

STDDEV_SAMP 和 STDDEV 是同一個函數的同義詞。

Syntax (語法)

STDDEV_SAMP | STDDEV | STDDEV_POP ( [ ALL ] expression ) OVER ( [ PARTITION BY expr_list ] [ ORDER BY order_list frame_clause ] )

引數

expression

函數運算的目標欄或表達式。

ALL

如果指定引數 ALL,函數會保留表達式中的所有重複值。ALL 為預設值。不支援 DISTINCT。

OVER

指定彙總函數的視窗子句。OVER 子句區分視窗彙總函數和正常組彙總函數。

PARTITION BY expr_list

以一或多個表達式定義函數的視窗。

ORDER BY order_list

排序每一個分割區內的列。如果未指定 PARTITION BY,ORDER BY 會使用整個資料表。

frame_clause

如果彙總函數使用 ORDER BY 子句,則需要明確的窗框子句。窗框子句在排序的結果內包含或排除列集,以調整函數視窗中的一個列集。窗框子句包含 ROWS 關鍵字和相關的指定元。請參閱 視窗函數語法摘要

資料類型

STDDEV 函數支援的引數類型包括 SMALLINT、INTEGER、BIGINT、NUMERIC、DECIMAL、REAL 及 DOUBLE PRECISION。

不論表達式的資料類型,STDDEV 函數的傳回類型都是雙精確度數字。

範例

下列範例顯示如何使用 STDDEV_POP 和 VAR_POP 函數做為視窗函數。查詢計算 SALES 資料表中 PRICEPAID 值的母體變異數和母體標準差。

select salesid, dateid, pricepaid, round(stddev_pop(pricepaid) over (order by dateid, salesid rows unbounded preceding)) as stddevpop, round(var_pop(pricepaid) over (order by dateid, salesid rows unbounded preceding)) as varpop from sales order by 2,1; salesid | dateid | pricepaid | stddevpop | varpop --------+--------+-----------+-----------+--------- 33095 | 1827 | 234.00 | 0 | 0 65082 | 1827 | 472.00 | 119 | 14161 88268 | 1827 | 836.00 | 248 | 61283 97197 | 1827 | 708.00 | 230 | 53019 110328 | 1827 | 347.00 | 223 | 49845 110917 | 1827 | 337.00 | 215 | 46159 150314 | 1827 | 688.00 | 211 | 44414 157751 | 1827 | 1730.00 | 447 | 199679 165890 | 1827 | 4192.00 | 1185 | 1403323 ...

樣本標準差和變異數函數可如法泡製。