Расчет коэффициента корреляции с помощью PostgreSQL? - PullRequest
3 голосов
/ 10 июня 2010

Я разработал, как рассчитать коэффициент корреляции между двумя полями, если оба находятся в одной таблице:

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

... но я не могу понять, как это сделать, когда столбцывзяты из разных таблиц (мне нужно применить одинаковые фильтры к обеим таблицам).

Любые подсказки, пожалуйста?

Ответы [ 2 ]

5 голосов
/ 10 июня 2010

Если таблицы связаны друг с другом, так что вы можете присоединиться к ним, это довольно просто. Просто присоединитесь к ним и сделайте соотношение:

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 голос
/ 10 июня 2010

попробуйте

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>;
...