Re: Advance SQL subquery

From: Merlin Moncure <mmoncure(at)gmail(dot)com>
To: AnthonyV <avequeau(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Advance SQL subquery
Date: 2009-09-23 15:32:25
Message-ID: b42b73150909230832v1f513ef6lbfa269f97c348ffb@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Wed, Sep 23, 2009 at 8:13 AM, AnthonyV <avequeau(at)gmail(dot)com> wrote:
> Hello,
>
> I have a table like :
>
>   date        |    value
> -------------------------------
> 2009-09-19 |      1
> 2009-09-20 |      2
> 2009-09-21 |      6
> 2009-09-22 |      9
> 2009-09-23 |      1
>
> I'd like a request which gives me the sum of each last n days.
> For example, if I want the sum of each 3 days, I want this result:
>
>   date        | sum_value
> -------------------------------
> 2009-09-19 |      1   (sum from 2009-09-17 to 2009-09-19)
> 2009-09-20 |      3   (sum from 2009-09-18 to 2009-09-20)
> 2009-09-21 |      9   (sum from 2009-09-19 to 2009-09-21)
> 2009-09-22 |      17   (sum from 2009-09-20 to 2009-09-22)
> 2009-09-23 |      16   (sum from 2009-09-21 to 2009-09-23)
>
> I try to make a subquery which is apply on each row of a query, but it
> does work.

select date, (select count(*) from foo where date between f.date - 1
and f.date + 1) from foo f;

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2009-09-23 15:33:44 Re: Help! Database restored with disabled triggers
Previous Message Tom Lane 2009-09-23 15:24:21 Re: Help! Database restored with disabled triggers