массив pl / pgsql в качестве входных данных для агрегатной функции - PullRequest
3 голосов
/ 24 октября 2010

Я пишу функцию pl / pgsql, которая выполняет некоторую статистическую обработку. используя 8.2 postgres. я хочу использовать эту удобную агрегатную функцию:

regr_slope (Y, X)

но мои данные X и Y хранятся в виде локальных массивов в функции pl / pgsql: у двойной точности []; x двойная точность [];

Проблема в том, что я использую это как строку в функции pl / pgsql:

наклон: = regr_slope (y, x);

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

есть ли способ сделать функцию regr_slope с локальными массивами? (т. е. какой-нибудь способ приведения массива к допустимым входным данным для статистической функции?)

спасибо.

1 Ответ

1 голос
/ 24 октября 2010
SELECT regr_slope(x,y) INTO slope FROM (SELECT unnest(ARRAY[1,2,3,4]) as x, unnest(ARRAY[5,6,7,8]) AS y) AS z;
...