Корреляция всех переменных с целевой переменной в SQL - PullRequest
0 голосов
/ 27 января 2020

У меня есть таблица с 270 столбцами. Я выбрал один из них в качестве целевой переменной и хочу написать запрос, который находит корреляции для каждой переменной отдельно с целевым столбцом. Есть ли способ сделать это без жесткого кодирования имен столбцов в функции corr? Я использую Oracle SQL.

1 Ответ

1 голос
/ 27 января 2020

Не совсем. Но в Oracle 12+ это может показаться немного проще:

select x.which, corr(x.target, x.source)
from t cross join lateral
     (select 'source001' as which, target, source1 as source from dual union all
      select 'source002' as which, target, source2 as source from dual union all
      . . .
      select 'source270' as which, target, source270 as source from dual
     ) x
group by which;

Для просто корреляция это не проще, чем перечисление функций corr() по отдельности. Но вы можете легко добавить больше статистики - скажем, min(), max() или count() - без повторения всех столбцов (или без ограничения по столбцам).

...