Re: Merge overlapping time-periods

Поиск
Список
Период
Сортировка
От Oliveiros d'Azevedo Cristina
Тема Re: Merge overlapping time-periods
Дата
Msg-id BFA62FEB05884AEDBF93FD7331BF236E@marktestcr.marktest.pt
обсуждение исходный текст
Ответ на Merge overlapping time-periods  ("Jira, Marcel" <Marcel.Jira@wu.ac.at>)
Список pgsql-sql
Howdy, Marcel,
 
In the example output you provided the ID = 2 should have just one record...Ain't I right?
 
Best,
Oliveiros
----- Original Message -----
Sent: Wednesday, June 15, 2011 4:23 PM
Subject: [SQL] Merge overlapping time-periods

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

В списке pgsql-sql по дате отправления:

Предыдущее
От: "F. BROUARD / SQLpro"
Дата:
Сообщение: Re: Merge overlapping time-periods
Следующее
От: "Oliveiros d'Azevedo Cristina"
Дата:
Сообщение: Re: Merge overlapping time-periods