From: | Justin <justin(at)emproshunts(dot)com> |
---|---|
To: | Justin <justin(at)emproshunts(dot)com>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: how do you write aggregate function |
Date: | 2008-03-11 15:14:26 |
Message-ID: | 47D6A1D2.5000801@emproshunts.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
thanks
it now takes 806 ms
Martijn van Oosterhout wrote:
> On Mon, Mar 10, 2008 at 10:01:47AM -0500, Justin wrote:
>
>> i wish that could work but need to keep track of the individual weights
>> as its a percentage of the total amount of the weight.
>>
>
> Unless you have a different meaning of weighted average to me, I don't
> think you do. AFAIK this would produce exactly the same result as what
> your code does:
>
> state_function(state,weight,value)
> state[0] = state[0]+weight
> state[1] = state[1]+weight*value
>
> final_function(state)
> return state[1]/state[0]
>
> The state[0] is the same as your _sumedWeight. Because it's a constant in
> the second loop you can do the division after. state[1] is your
> _sumedWxV times _sumedWeight.
>
> Have a nice day,
>
From | Date | Subject | |
---|---|---|---|
Next Message | Richard Huxton | 2008-03-11 15:15:24 | Re: ISO something like "#if 0 ... #endif" for SQL code |
Previous Message | Richard Huxton | 2008-03-11 15:12:31 | Re: Database OID xxxxx now seems to belong to "foo" |