---
title: "CORR - OceanBase 数据库 V4.3.5 | OceanBase 文档中心"
description: "CORR 描述 该函数用于计算一组数值对的相关系数。相关系数代表数值对的关联强度，范围为 [-1,1]，其中 0 表示不相关，小于 0 代表负相关，大于 0 代表正相关。可以将该函数用作聚合或分析函数。 说明 作为分析函数使用时，需要使用 OVER 子句定义窗口进行计算。它对一组行的集合进行计算并返回多个值。 作为聚…"
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.3.5 LTS

# CORR

更新时间：2026-07-15 20:42:46

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.5/zh-CN/700.reference/500.sql-reference/100.sql-syntax/300.common-tenant-of-oracle-mode/500.functions-of-oracle-mode/300.aggregate-functions-of-oracle-mode/300.corr-agg-of-oracle-mode.md)  

## 描述

该函数用于计算一组数值对的相关系数。相关系数代表数值对的关联强度，范围为 [-1,1]，其中 `0` 表示不相关，小于 `0` 代表负相关，大于 `0` 代表正相关。可以将该函数用作聚合或分析函数。

#### 说明

- 作为分析函数使用时，需要使用 `OVER` 子句定义窗口进行计算。它对一组行的集合进行计算并返回多个值。
 - 作为聚合函数使用时，该函数对一组行的集合进行聚合计算，结果只能返回一个值，此时不需要加 `OVER` 子句。

## 语法

```sql
CORR(expr1, expr2) [ OVER (analytic_clause) ]

```

## 参数解释

| 参数 | 说明 |
| --- | --- |
| expr1 | 指定第一个参数，属于数值数据类型或可以隐式转换为数值数据类型的值。 |
| expr2 | 指定第二个参数，属于数值数据类型或可以隐式转换为数值数据类型的值。 |
| OVER | 使用 `OVER` 子句定义窗口进行计算。详细信息请参见 [分析函数说明](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002017509)。 |

#### 说明

- 数据库确定具有最高数值优先级的参数，将其余参数隐式转换为该数据类型，并返回该数据类型。
 - 参数 `expr1` 和 `expr2` 的位置不影响返回结果。
 - 返回结果计算公式为：`COVAR_POP(expr1, expr2) / (STDDEV_POP(expr1) * STDDEV_POP(expr2))`。

## 返回类型

如果有任意一个参数为空或只有一行数据，则返回 `NULL`。否则返回一个 `NUMBER` 类型的值。

## 示例

创建表 `tbl1`，并插入数据。

```sql
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` 的数据相关系数。

```sql
obclient> SELECT CORR(col3,col4) FROM tbl1;
+--------------------------------------------+
| CORR(COL3,COL4)                            |
+--------------------------------------------+
| -.2705008904002296868793073195758520224002 |
+--------------------------------------------+
1 row in set

```

### 分析函数示例

按列 `col1` 分组，计算列 `col3` 的数据与列 `col4` 的数据相关系数。

```sql
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

```

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
