> I have a need to create some statistical functions in PostgreSQL that
will take multiple
> "column" arguments and return multiple values.
>
> A good example would be a least squares fit of a line through a set
of (x,y) points.
> In this case, I would want the function to accept two "columns" of
data (i.e. x data and
> y data) as arguments and return two parameters: the slope and
intercept of a line.
>
> The slope is given by [sum(x^2)*sum(y) - sum(x)*sum*x*y)] /
[M*sum(x^2) -(sum(x))^2]
>
> It's not *that* complicated, but it's not that easy to remember
either. And if you're already
> doing a lot of work to tease out the x and y points from various
tables, it simplifies your query
> if you can do a function call.
>
> I can't tell from what have read about user defined functions and
user defined aggregates whether
> this kind of function is possible.
>
> Bill Eaton
I just notice that multiple inputs to aggregates are allowed in the
upcoming 8.2 release. This gives me a great incentive to play with the
beta and upgrade from 8.0.
One question remains: how about multiple outputs? Can I have a ROW as a
return value -- i.e. something like SLOPE and INTERCEPT in the original
example?
-Bill Eaton