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 по дате отправления: