Re: aggregate function ?
От | Richard Broersma Jr |
---|---|
Тема | Re: aggregate function ? |
Дата | |
Msg-id | 183533.40800.qm@web31802.mail.mud.yahoo.com обсуждение исходный текст |
Ответ на | aggregate function ? (Raimon Fernandez <coder@montx.com>) |
Список | pgsql-novice |
--- Raimon Fernandez <coder@montx.com> wrote: > 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 > One solution is to use a correlated sub-query: SELECT A.letter_field, A.letter_value, ( SELECT sum( letter_value ) FROM Your_table AS B WHERE B.letter_field <= A.letter_field ) AS value_sum FROM Your_table AS A ORDER BY A.letter_field; Another solution is to use a join: SELECT A.letter_field, A.letter_value, sum( B.letter_value ) AS value_sum FROM Your_table AS A INNER JOIN Your_table AS B ON A.letter_field <= B.letter_field GROUP BY A.letter_field, A.letter_value, ORDER BY A.letter_field; There are a couple of good SQL books that are really good at teaching methods on how to construct such queries if you are enterested. Regards, Richard Broersma Jr.
В списке pgsql-novice по дате отправления: