covar_samp
返回两个表达式的样本协方差。此函数从 v2.5.10 版本开始支持。它也可以用作窗口函数。
语法
COVAR_SAMP(expr1, expr2)
参数
expr1
和 expr2
必须评估为 TINYINT、SMALLINT、INT、BIGINT、LARGEINT、FLOAT、DOUBLE 或 DECIMAL。
如果 expr1
和 expr2
是表列,则此函数计算这两列的样本协方差。
返回值
返回 DOUBLE 值。公式如下,其中 n
表示表的行数
使用说明
-
只有当该行中的两列都是非空值时,才会计算数据行。否则,此数据行将从结果中删除。
-
如果
n
为 1,则返回 0。 -
如果任何输入为 NULL,则返回 NULL。
示例
假设表 agg
具有以下数据
mysql> select * from agg;
+------+-------+-------+
| no | k | v |
+------+-------+-------+
| 1 | 10.00 | NULL |
| 2 | 10.00 | 11.00 |
| 2 | 20.00 | 22.00 |
| 2 | 25.00 | NULL |
| 2 | 30.00 | 35.00 |
+------+-------+-------+
计算 k
和 v
列的样本协方差
mysql> select no,COVAR_SAMP(k,v) from agg group by no;
+------+--------------------+
| no | covar_samp(k, v) |
+------+--------------------+
| 1 | NULL |
| 2 | 119.99999999999999 |
+------+--------------------+