| From: | "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> |
|---|---|
| To: | Paul Linehan <linehanp(at)tcd(dot)ie> |
| Cc: | "pgsql-novice(at)postgresql(dot)org" <pgsql-novice(at)postgresql(dot)org> |
| Subject: | Re: Generate a series of single days from a table of intervals. |
| Date: | 2016-07-27 17:13:38 |
| Message-ID: | CAKFQuwY0O3bDbGmkvQ_V6m6L6pi_m4ZTr48VANnaXPO8yy4DvA@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-novice |
On Wed, Jul 27, 2016 at 12:57 PM, Paul Linehan <linehanp(at)tcd(dot)ie> wrote:
>
> I wish to generate a series of dates
https://www.postgresql.org/docs/9.5/static/functions-srf.html
> from these intervals and
> also to generate the intervening dates with a status of 0 (say
>
See "LEFT JOIN" and "COALESCE"
>
> The output I need is:
>
> date_val status
>
> 2016-04-01 0
> 2016-04-02 1
> 2016-04-03 1
> 2016-04-04 1
> 2016-04-05 1
> 2016-04-06 0
>
> 2016-04-02 0
>
Typo?
> ..
> ..<status as appropriate for the rest of the month>
> ..
> 2016-04-30 0
>
>
> I would like to do this using a recursive CTE if it's the best solution,
> but I'm open to other approaches - different approaches appreciated.
>
>
Really? That should be the last choice of execution strategy.
This isn't a tree, I'm doubtful that a recursive CTE is needed.
> CREATE TABLE testdate (datein date, dateout date, status int);
>
> INSERT INTO testdate VALUES ('2016-04-02', '2016-04-05', 1);
> INSERT INTO testdate VALUES ('2016-04-15', '2016-04-18', 1);
> INSERT INTO testdate VALUES ('2016-04-25', '2016-04-30', 1);
>
https://www.postgresql.org/docs/9.5/static/rangetypes.html
https://www.postgresql.org/docs/9.5/static/functions-range.html
David J.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Paul Linehan | 2016-07-27 17:35:16 | Re: Generate a series of single days from a table of intervals. |
| Previous Message | Paul Linehan | 2016-07-27 16:57:58 | Generate a series of single days from a table of intervals. |