You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL中计算两个变量之间的相关性?

SQL 计算两个变量相关关系的方法

完全可以在 SQL 中实现两个变量的相关性计算,最常用的是皮尔逊积矩相关系数,结果取值范围为-1到1,绝对值越大代表相关性越强,正负符号对应正相关/负相关。

通用实现(兼容所有主流SQL引擎)

基于皮尔逊相关系数的标准公式推导,不需要依赖数据库内置的相关性函数,通用写法如下:
假设你的数据存储在表your_table中,需要计算相关性的两个变量列名为x和y:

SELECT
  (COUNT(*) * SUM(x * y) - SUM(x) * SUM(y)) 
  / SQRT(
    (COUNT(*) * SUM(x * x) - SUM(x) * SUM(x)) 
    * (COUNT(*) * SUM(y * y) - SUM(y) * SUM(y))
  ) AS pearson_correlation
FROM your_table
WHERE x IS NOT NULL AND y IS NOT NULL -- 过滤空值避免结果偏差

简化写法(支持内置函数的数据库可用)

PostgreSQL、SQL Server 2022+、BigQuery、Spark SQL等较新的SQL引擎已经内置了CORR聚合函数,可以直接调用得到结果:

SELECT CORR(x, y) AS pearson_correlation
FROM your_table
WHERE x IS NOT NULL AND y IS NOT NULL

注意事项

  • 如果需要按不同分组分别计算相关性,直接在查询末尾添加GROUP BY 分组列名即可
  • 如果两个变量的方差为0,分母会出现0值导致计算报错,建议提前校验数据分布

内容的提问来源于stack exchange,提问作者Grant Bracey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 08:24:09