跳到主要内容
版本: 最新版本-3.5

corr

返回两个表达式之间的 Pearson 相关系数。该函数从 v2.5.10 开始支持。它也可以用作窗口函数。

语法

CORR(expr1, expr2)

参数

expr1expr2 必须评估为 TINYINT、SMALLINT、INT、BIGINT、LARGEINT、FLOAT、DOUBLE 或 DECIMAL。

如果 expr1expr2 是表列,此函数计算这两列的相关系数。

返回值

返回 DOUBLE 值。公式如下,其中 n 表示表的行数

corr formula

使用说明

  • 只有当该行中的两列都是非空值时,才会计算数据行。否则,此数据行将从结果中删除。

  • 如果 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 |
+------+-------+-------+

计算 kv 列的相关系数

mysql> select no,CORR(k,v) from agg group by no;
+------+--------------------+
| no | corr(k, v) |
+------+--------------------+
| 1 | NULL |
| 2 | 0.9988445981121532 |
+------+--------------------+