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