From: | Raimon Fernandez <coder(at)montx(dot)com> |
---|---|
To: | pgsql-novice(at)postgresql(dot)org |
Subject: | aggregate function ? |
Date: | 2007-05-15 20:56:37 |
Message-ID: | 1A0BBE5C-362B-4696-8A17-458B44069B02@montx.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-novice |
hi again,
Some days ago I asked for help, nobody replied, and after trying to
do it in some way, I think aggregate function is the solution to my
problem, but I found difficult to understand how it works ...
What I want to do is accumulate the value for each row and add it to
the next:
a 100 100
b 50 150
c 25 175
My first approach was using a function/stored procedure, create a
cursor, loop through it, and insert the values in a temporary table,
that's why I was asking for those 'create table' before.
using a front-en application this is very easy, but I want to do it
directly in the server, and also it's a great exercice to learn more
about postgresql.
aggregate function
What I understand is:
I have to define the return-type of the aggregate function => float
The type of thing it aggregates => float (will be the value for each
row)
An initial value, probably 0
And a state-transition function to accumulate values (takes the
running total and the next value)
The optionally finalisation function I think I don't need it ...
How I can pack all this info in a aggregate function ?
In the manuals there is this example:
CREATE AGGREGATE avg (
sfunc = float8_accum,
basetype = float8,
stype = float8[],
finalfunc = float8_avg,
initcond = ’{0,0}’
);
but if I use real data with this aggregate, it doesn't work: (note
that I change avg to test, also in the create aggregate)
GlobalGest=# select test(saldo_deure,saldo_haver,saldo) from comptes
limit 5;
ERROR: function test(numeric, numeric, numeric) does not exist at
character 8
HINT: No function matches the given name and argument types. You may
need to add explicit type casts.
thanks in advance,
regards,
raimon fernandez
From | Date | Subject | |
---|---|---|---|
Next Message | Neil Saunders | 2007-05-15 21:51:34 | Re: Invalid byte sequence for encoding "UTF8" |
Previous Message | Richard Broersma Jr | 2007-05-15 18:52:03 | Re: PostgreSQL audiobooks and/or podcasts |