基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
CORR
更新时间:2026-07-15 20:42:46
描述
该函数用于计算一组数值对的相关系数。相关系数代表数值对的关联强度,范围为 [-1,1],其中 0 表示不相关,小于 0 代表负相关,大于 0 代表正相关。可以将该函数用作聚合或分析函数。
说明
- 作为分析函数使用时,需要使用
OVER子句定义窗口进行计算。它对一组行的集合进行计算并返回多个值。 - 作为聚合函数使用时,该函数对一组行的集合进行聚合计算,结果只能返回一个值,此时不需要加
OVER子句。
语法
CORR(expr1, expr2) [ OVER (analytic_clause) ]
参数解释
| 参数 | 说明 |
|---|---|
| expr1 | 指定第一个参数,属于数值数据类型或可以隐式转换为数值数据类型的值。 |
| expr2 | 指定第二个参数,属于数值数据类型或可以隐式转换为数值数据类型的值。 |
| OVER | 使用 OVER 子句定义窗口进行计算。详细信息请参见 分析函数说明。 |
说明
- 数据库确定具有最高数值优先级的参数,将其余参数隐式转换为该数据类型,并返回该数据类型。
- 参数
expr1和expr2的位置不影响返回结果。 - 返回结果计算公式为:
COVAR_POP(expr1, expr2) / (STDDEV_POP(expr1) * STDDEV_POP(expr2))。
返回类型
如果有任意一个参数为空或只有一行数据,则返回 NULL。否则返回一个 NUMBER 类型的值。
示例
创建表 tbl1,并插入数据。
obclient> CREATE TABLE tbl1(col1 INT,col2 varchar(10),col3 INT,col4 INT);
Query OK, 0 rows affected
obclient> INSERT INTO tbl1 VALUES(1,'A1',8,12),(1,'A2',10,15),(1,'A3',11,16),
(2,'B1',9,14),(2,'B2',10,15),(2,'B3',8,13),(2,'B4',11,16),(3,'C1',8,18),
(3,'C2',9,16),(3,'C3',10,15),(3,'C4',11,12),(3,'C5',12,10);
Query OK, 12 rows affected
Records: 12 Duplicates: 0 Warnings: 0
obclient> SELECT * FROM tbl1;
+------+------+------+------+
| COL1 | COL2 | COL3 | COL4 |
+------+------+------+------+
| 1 | A1 | 8 | 12 |
| 1 | A2 | 10 | 15 |
| 1 | A3 | 11 | 16 |
| 2 | B1 | 9 | 14 |
| 2 | B2 | 10 | 15 |
| 2 | B3 | 8 | 13 |
| 2 | B4 | 11 | 16 |
| 3 | C1 | 8 | 18 |
| 3 | C2 | 9 | 16 |
| 3 | C3 | 10 | 15 |
| 3 | C4 | 11 | 12 |
| 3 | C5 | 12 | 10 |
+------+------+------+------+
12 rows in set
聚合函数示例
计算列 col3 的数据与列 col4 的数据相关系数。
obclient> SELECT CORR(col3,col4) FROM tbl1;
+--------------------------------------------+
| CORR(COL3,COL4) |
+--------------------------------------------+
| -.2705008904002296868793073195758520224002 |
+--------------------------------------------+
1 row in set
分析函数示例
按列 col1 分组,计算列 col3 的数据与列 col4 的数据相关系数。
obclient> SELECT col1,col3,col4,CORR(col3,col4) OVER(PARTITION BY col1) "corr" FROM tbl1;
+------+------+------+--------------------------------------------+
| COL1 | COL3 | COL4 | corr |
+------+------+------+--------------------------------------------+
| 1 | 8 | 12 | .9958705948858223809835060513429288056548 |
| 1 | 10 | 15 | .9958705948858223809835060513429288056548 |
| 1 | 11 | 16 | .9958705948858223809835060513429288056548 |
| 2 | 9 | 14 | 1 |
| 2 | 10 | 15 | 1 |
| 2 | 8 | 13 | 1 |
| 2 | 11 | 16 | 1 |
| 3 | 8 | 18 | -.9901475429766743091532731291244706579003 |
| 3 | 9 | 16 | -.9901475429766743091532731291244706579003 |
| 3 | 10 | 15 | -.9901475429766743091532731291244706579003 |
| 3 | 11 | 12 | -.9901475429766743091532731291244706579003 |
| 3 | 12 | 10 | -.9901475429766743091532731291244706579003 |
+------+------+------+--------------------------------------------+
12 rows in set