本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
STDDEV_SAMP 和 STDDEV_POP 視窗函數
STDDEV_SAMP 和 STDDEV_POP 視窗函數會傳回一組數值 (整數、小數或浮點) 的範例和母群體標準差。另請參閱STDDEV_SAMP 和 STDDEV_POP 函數。
STDDEV_SAMP 和 STDDEV是相同函數的同義詞。
語法
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,ORDERBY 會使用整個資料表。
- 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 ...
樣本標準差和變異數函數可如法泡製。