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




---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend

Reply via email to