Merge overlapping time-periods

Поиск
Список
Период
Сортировка
От Jira, Marcel
Тема Merge overlapping time-periods
Дата
Msg-id D793F5C522F1DD40BB9DC43586C57637DE06389FE8@MBX-B.ad.wu-wien.ac.at
обсуждение исходный текст
Ответы Re: Merge overlapping time-periods  ("F. BROUARD / SQLpro" <sqlpro@club-internet.fr>)
Список pgsql-sql
<div class="WordSection1"><p class="MsoNormal">Hi!<p class="MsoNormal"> <p class="MsoNormal"><span
lang="EN-US">AlthoughI try for some time, I am not able to write an SQL-Query that can do the following:</span><p
class="MsoNormal"><spanlang="EN-US"> </span><p class="MsoNormal"><span lang="EN-US">I have a very big table (let’s call
it“mytable”) with information like this:</span><p class="MsoNormal"><span lang="EN-US"> </span><p
class="MsoNormal"><spanlang="EN-US" style="font-size:10.0pt;font-family:"Courier New"">ID  BEG          END</span><p
class="MsoNormal"><spanlang="EN-US" style="font-size:10.0pt;font-family:"Courier New"">1   2000-01-01  
2000-03-31</span><pclass="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Courier New"">1  
2000-04-01  2000-05-31</span><p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Courier
New"">1  2000-04-15   2000-07-31</span><p class="MsoNormal"><span lang="EN-US"
style="font-size:10.0pt;font-family:"CourierNew"">1   2000-09-01   2000-10-31</span><p class="MsoNormal"><span
lang="EN-US"style="font-size:10.0pt;font-family:"Courier New"">2   2000-02-01   2000-03-15</span><p
class="MsoNormal"><spanlang="EN-US" style="font-size:10.0pt;font-family:"Courier New"">2   2000-01-15  
2000-03-31</span><pclass="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Courier New"">2  
2000-04-01  2000-04-15</span><p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Courier
New"">3  2000-06-01   2000-06-15</span><p class="MsoNormal"><span lang="EN-US"
style="font-size:10.0pt;font-family:"CourierNew"">3   2000-07-01   2000-07-15</span><p class="MsoNormal"><span
lang="EN-US"> </span><pclass="MsoNormal"><span lang="EN-US">There’s an ID and time periods defined by a start value
(BEG)and an end value (END)</span><p class="MsoNormal"><span lang="EN-US"> </span><p class="MsoNormal"><span
lang="EN-US">Iwant to merge all periods belonging to the same ID, iff their time periods are overlapping or in a direct
sequence.</span><pclass="MsoNormal"><span lang="EN-US"> </span><p class="MsoNormal"><span lang="EN-US">Therefore the
resultshould somehow look like this:</span><p class="MsoNormal"><span lang="EN-US"> </span><pre>ID  BEG         
END</pre><pre>1  2000-01-01   2000-07-31</pre><pre>1   2000-09-01   2000-10-31</pre><pre>2   2000-01-15  
2000-03-31</pre><pre>2  2000-04-01   2000-04-15</pre><pre>3   2000-06-01   2000-06-15</pre><pre>3   2000-07-01  
2000-07-15</pre><pclass="MsoNormal"><span lang="EN-US"> </span><p class="MsoNormal"><span lang="EN-US">I tried using
“WITHRECURSIVE” but I didn’t succeed.</span><p class="MsoNormal"><span lang="EN-US"> </span><p class="MsoNormal"><span
lang="EN-US">Myserver is PostgreSQL 8.4. Unfortunately I can’t do anything like update or install some fancy
module…</span><pclass="MsoNormal"><span lang="EN-US"> </span><p class="MsoNormal"><span lang="EN-US">Thank you for your
help!</span><pclass="MsoNormal"><span lang="EN-US"> </span><p class="MsoNormal"><span lang="EN-US">Best
regards,</span><pclass="MsoNormal"><span lang="EN-US"> </span><p class="MsoNormal"><span lang="EN-US">Marcel
Jira</span></div>

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

Предыдущее
От: "greg.fenton"
Дата:
Сообщение: Re: Select For Update and Left Outer Join
Следующее
От: "Charles N. Charotti"
Дата:
Сообщение: Calling inner functions vs. Begin-End blocs