From: | Richard Broersma Jr <rabroersma(at)yahoo(dot)com> |
---|---|
To: | Raimon Fernandez <coder(at)montx(dot)com>, pgsql-novice(at)postgresql(dot)org |
Subject: | Re: aggregate function ? |
Date: | 2007-05-15 21:59:52 |
Message-ID: | 183533.40800.qm@web31802.mail.mud.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-novice |
--- Raimon Fernandez <coder(at)montx(dot)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.
From | Date | Subject | |
---|---|---|---|
Next Message | Raimon Fernandez | 2007-05-15 23:38:49 | Re: aggregate function ? |
Previous Message | Neil Saunders | 2007-05-15 21:51:34 | Re: Invalid byte sequence for encoding "UTF8" |