使用PostgreSQL计算相关系数?

4

如果两个字段在同一张表中,我已经想出了如何计算它们之间的相关系数:

SELECT corr(column1, column2) FROM table WHERE <my filters>;

我想进行筛选,但是当列来自不同的表时,我不知道该怎么做(我需要将相同的筛选应用于两个表)。

请给予任何提示,谢谢!

2个回答

11

如果这些表是相互关联的,可以通过连接它们来完成操作,很简单。只需将它们连接起来并进行相关性分析:

SELECT corr(t1.col1, t2.col2)
FROM table1 t1
     JOIN table2 t2
         ON t1.join_field = t2.join_field
WHERE
     <filters for t1>
     AND
     <filters for t2>
如果它们没有被连接,那么你要如何找出从每个表中选择哪些字段来运行corr呢?

1
尝试一下这个。
SELECT corr(t1.column1, t2.column2) 
FROM table1 t1
join table2 t2 on t1.SomeColumn = t2.SomeColumn 
WHERE t1.<my filters>
AND t2.<my filters>;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接