Re: Sum() rows - Mailing list pgsql-sql
From | PFC |
---|---|
Subject | Re: Sum() rows |
Date | |
Msg-id | op.srnxdvy6th1vuj@localhost Whole thread Raw |
In response to | Sum() rows ([email protected]) |
List | 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 DOret.id = row.idret.value = row.valueret.subtot = ret.subtot + row.valueRETURNNEXT 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 >