VAR_SAMP [analytic]
为
窗口内组中的每行返回非 NULL
数字集(将忽略集中的 NULL
值)的样本方差。结果的计算方法如下所示:
(SUM( expression * expression ) - SUM( expression ) * SUM( expression ) / COUNT( expression ) )
/ (COUNT( expression ) - 1 )
此函数与
VARIANCE
在一个方面有所不同:对于某个元素的输入集,VARIANCE
返回 0,而 VAR_SAMP
返回 NULL
。
行为类型
不可变语法
VAR_SAMP ( expression ) OVER (
[ window-partition-clause ]
[ window-order-clause ]
[ window-frame-clause ] )
参数
- 表达式
- 任何
NUMERIC
数据类型或可隐式转换为数字数据类型的任何非数字数据类型。函数返回的数据类型与参数的数字数据类型相同 OVER()
- 请参阅分析函数
Null 处理
-
VAR_SAMP
丢弃一组数字中的NULL
值,然后返回剩余数据的样本方差。 -
如果将此函数应用于空集,则会返回
NULL
。
示例
下述示例计算 2007 年 12 月商店销售订单事实表的样本方差:
=> SELECT date_ordered,
VAR_SAMP(SUM(total_order_cost))
OVER (ORDER BY date_ordered) "var_samp"
FROM store.store_orders_fact s
WHERE date_ordered BETWEEN '2007-12-01' AND '2007-12-31'
GROUP BY s.date_ordered;
date_ordered | var_samp
--------------+------------------
2007-12-01 | NaN
2007-12-02 | 90642601088
2007-12-03 | 48030548449.3359
2007-12-04 | 32740062504.2461
2007-12-05 | 32100319112.6992
2007-12-06 | 26274166814.668
2007-12-07 | 23017490251.9062
2007-12-08 | 21099374085.1406
2007-12-09 | 27462205977.9453
2007-12-10 | 26288687564.1758
(10 rows)