Re: user defined aggregate with multiple arguments - Mailing list pgsql-general

From Bill Eaton
Subject Re: user defined aggregate with multiple arguments
Date
Msg-id 452DD570.4030007@adelphia.net
Whole thread Raw
In response to user defined aggregate with multiple arguments  (Bill Eaton <wpeaton@adelphia.net>)
Responses Re: user defined aggregate with multiple arguments  ("Sergey E. Koposov" <math@sai.msu.ru>)
List pgsql-general
 > 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


pgsql-general by date:

Previous
From: Bill Eaton
Date:
Subject: user defined aggregate with multiple arguments
Next
From: Thomas Pundt
Date:
Subject: Re: Problem with executing PostgreSQL on Embedded Linux