oracle中的数学公式

oracle中的数学公式函数

协方差

COVAR_POP 函数 [集合]:返回一组数字对的总体协方差。

语法
1
COVAR_POP (<dependent-expression>, <independent-expression>)
参数
参数 说明
dependent-expression 受独立变量影响的变量
independent-expression 影响结果的变量
注释

此函数将其参数转换为 DOUBLE,执行双精度浮点计算,并返回一个 DOUBLE 作为结果。如果将 COVAR_POP 应用于空集,它将返回 NULL。

dependent-expression 和 independent-expression 都是数值。在消除 dependent-expression 或 independent-expression 为 NULL 的值对之后,系统会将此函数应用于 dependent-expression 和 independent-expression 的集合。然后执行以下计算:
$$
(sum(x*y)-sum(x)*sum(y)/n)/n
$$
其中 x 表示 dependent-expression,y 表示 independent-expression。

示例
1
2
3
select owner, COVAR_POP(avg_row_len, avg_space)
from all_tables
group by owner;

[^注意]: GROUP BY 子句不支持 ROLLUP 和 CUBE。DISTINCT 不受支持。

方差

VAR_POP 函数 [集合]:计算由 numeric-expression 组成的总体的统计方差,类型为 DOUBLE。返回值DOUBLE。

语法
1
VAR_POP ( [ ALL ] <expression> )
参数
参数 说明
expression 要对一组行计算基于总体的方差的表达式(通常是列名)
注释

计算所提供的针对每个组行或分区行(如果指定了 DISTINCT,则为在消除重复项后剩余的各行)求值的 的总体方差,其定义为: 与 均值之差的平方和,然后再除以组中或分区中剩余的行数。

基于总体的方差是根据以下公式计算的:
$$
∑(xi-x̅)²/n
$$

示例

以下语句列出不同时间段每个订单的产品数目的平均值和方差:

1
2
3
4
5
SELECT year( ShipDate ) AS Year, quarter( ShipDate )
AS Quarter, AVG( Quantity ) AS Average,
VAR_POP( Quantity ) AS Variance
FROM SalesOrderItems GROUP BY Year, Quarter
ORDER BY Year, Quarter
季度 平均值 方差
2000 1 25.775148 203.9021
2000 2 27.050847 225.8109