Re: Sum() rows

From: PFC <lists(at)boutiquenumerique(dot)com>
To: lucas(at)presserv(dot)org, pgsql-sql(at)postgresql(dot)org
Subject: Re: Sum() rows
Date: 2005-05-31 23:11:45
Message-ID: op.srnxdvy6th1vuj@localhost
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql


The simplest would be to create a stored procedure like this :

declare row as TB1%rowtype, and ret as (id integer, value numeric, subtot
numeric) then :

ret.subtot = 0

FOR row IN SELECT * FROM TB1 ORDER BY id DO
ret.id = row.id
ret.value = row.value
ret.subtot = ret.subtot + row.value
RETURN NEXT ret
END

etc...

SQL doesn't really work well for this kind of things whereas plpgsql works
really well and it's plenty fast too.

> CREATE TABLE TB1 (id integer primary key, value numeric);
> insert into tb1 values (1,20);
> insert into tb1 values (2,2);
> insert into tb1 values (3,3);
> insert into tb1 values (4,17);
> insert into tb1 values (5,-0.5);
> insert into tb1 values (6,3);
>
> I want a query that returns:
> -id- | --- value --- | --- subtot ---
> 1 | 20.00 | 20.00
> 2 | 2.00 | 22.00
> 3 | 3.00 | 25.00
> 4 | 17.00 | 42.00
> 5 | -0.50 | 41.50
> 6 | 3.00 | 44.50
>
> The subtot colum will be the "prev. subtot colum"+"value colum". :-/
> I dont know how to make the "subtot" colum, I tried to use the sum()
> function
> but it not works correctly.
> Any idea???
>
> Thanks.
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/docs/faq
>

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Mark Dilger 2005-06-01 01:09:45 Re: Sum() rows
Previous Message Joe Conway 2005-05-31 22:02:00 Re: [SQL] ARRAY() returning NULL instead of ARRAY[] resp.