Re: Merge overlapping time-periods

From: "F(dot) BROUARD / SQLpro" <sqlpro(at)club-internet(dot)fr>
To: pgsql-sql(at)postgresql(dot)org
Subject: Re: Merge overlapping time-periods
Date: 2011-06-15 15:43:46
Message-ID: 4DF8D332.30909@club-internet.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

I write a paper on this topic comparing queries for PG, SQL Server and
MySQL.

Can you read french ?
http://blog.developpez.com/sqlpro/p9821/langage-sql-norme/agregation-d-intervalles-en-sql-1/

The worst query is the RECURSIVE one !

A +

Le 15/06/2011 17:23, Jira, Marcel a écrit :
> Hi!
>
> Although I try for some time, I am not able to write an SQL-Query that
> can do the following:
>
> I have a very big table (let’s call it “mytable”) with information like
> this:
>
> ID BEG END
>
> 1 2000-01-01 2000-03-31
>
> 1 2000-04-01 2000-05-31
>
> 1 2000-04-15 2000-07-31
>
> 1 2000-09-01 2000-10-31
>
> 2 2000-02-01 2000-03-15
>
> 2 2000-01-15 2000-03-31
>
> 2 2000-04-01 2000-04-15
>
> 3 2000-06-01 2000-06-15
>
> 3 2000-07-01 2000-07-15
>
> There’s an ID and time periods defined by a start value (BEG) and an end
> value (END)
>
> I want to merge all periods belonging to the same ID, iff their time
> periods are overlapping or in a direct sequence.
>
> Therefore the result should somehow look like this:
>
> ID BEG END
>
> 1 2000-01-01 2000-07-31
>
> 1 2000-09-01 2000-10-31
>
> 2 2000-01-15 2000-03-31
>
> 2 2000-04-01 2000-04-15
>
> 3 2000-06-01 2000-06-15
>
> 3 2000-07-01 2000-07-15
>
> I tried using “WITH RECURSIVE” but I didn’t succeed.
>
> My server is PostgreSQL 8.4. Unfortunately I can’t do anything like
> update or install some fancy module…
>
> Thank you for your help!
>
> Best regards,
>
> Marcel Jira
>

--
Frédéric BROUARD - expert SGBDR et SQL - MVP SQL Server - 06 11 86 40 66
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Enseignant Arts & Métiers PACA, ISEN Toulon et CESI/EXIA Aix en Provence
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Oliveiros d'Azevedo Cristina 2011-06-15 16:37:51 Re: Merge overlapping time-periods
Previous Message Charles N. Charotti 2011-06-15 15:40:48 Calling inner functions vs. Begin-End blocs