PL/PGSQL数组作为聚合函数的输入

3
我正在编写一个PL/PGSQL函数,用于进行一些统计处理。使用的是PostgreSQL 8.2版本。我想使用这个方便的聚合函数:
regr_slope(Y, X)
但是,我的X和Y数据存储在PL/PGSQL函数中的本地数组中: y double precision[]; x double precision[];
问题是当我在PL/PGSQL函数中使用以下代码时:
slope := regr_slope(y, x);
我会收到一个错误,说该函数不可用或参数有误。我怀疑这是因为输入应该是从表中选择的列,而不是作为double precision数组传递的。
是否有办法将regr_slope函数与本地数组配合使用?(即,将数组转换为有效的聚合函数输入的某种方式?)
谢谢。
1个回答

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

1
谢谢。这个方法对我有用,但需要加入unnest函数: - jeff
删除函数 unnest(anyarray);创建或替换函数 unnest(anyarray) 返回集合 anyelement AS $BODY$ SELECT $1[i] FROM generate_series(array_lower($1,1),array_upper($1,1)) i; $BODY$ 语言 'sql' 易失性 成本 100 行数 1000; 将函数 unnest(anyarray) 的所有者更改为 postgres; - jeff

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