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 | select owner, COVAR_POP(avg_row_len, avg_space) |
[^注意]: GROUP BY 子句不支持 ROLLUP 和 CUBE。DISTINCT 不受支持。
方差
VAR_POP 函数 [集合]:计算由 numeric-expression 组成的总体的统计方差,类型为 DOUBLE。返回值DOUBLE。
语法
1 | VAR_POP ( [ ALL ] <expression> ) |
参数
| 参数 | 说明 |
|---|---|
| expression | 要对一组行计算基于总体的方差的表达式(通常是列名) |
注释
计算所提供的针对每个组行或分区行(如果指定了 DISTINCT,则为在消除重复项后剩余的各行)求值的 的总体方差,其定义为: 与 均值之差的平方和,然后再除以组中或分区中剩余的行数。
基于总体的方差是根据以下公式计算的:
$$
∑(xi-x̅)²/n
$$
示例
以下语句列出不同时间段每个订单的产品数目的平均值和方差:
1 | SELECT year( ShipDate ) AS Year, quarter( ShipDate ) |
| 年 | 季度 | 平均值 | 方差 |
|---|---|---|---|
| 2000 | 1 | 25.775148 | 203.9021 |
| 2000 | 2 | 27.050847 | 225.8109 |