Skip site navigation (1) Skip section navigation (2)

Generare righe "intermedie"

From: Giorgio Valoti <giorgio_v(at)mac(dot)com>
To: pgsql-it-generale <pgsql-it-generale(at)postgresql(dot)org>
Subject: Generare righe "intermedie"
Date: 2008-10-27 08:54:05
Message-ID: CACFCBAE-0AFA-48A7-AF42-EEA3C83C6E73@mac.com (view raw or flat)
Thread:
Lists: pgsql-it-generale
Ciao a tutti,
mi scuso per il soggetto astruso ma non trovare di meglio. Ho questo  
problema che non riesco a risolvere e che coinvolge degli intervalli  
di tempo.

Supponiamo di avere una tabella di questo tipo:
      da     |     a
------------+------------
  1990-10-16 | 1990-12-15
  1990-12-16 | 1996-12-31
  1997-01-01 | 1998-12-31
  1999-01-01 | 2000-12-31
  2001-01-01 | 2001-12-31
  2002-01-01 | 2003-12-31
  2004-01-01 | 2006-05-01

In cui, come si vede, ho degli intervalli irregolari. A partire da  
quella tabella vorrei ottenere questa:
      da     |     a
------------+------------
  1990-10-16 | 1990-12-15
  1990-12-16 | 1990-12-31
  1991-12-16 | 1991-12-31
  1992-12-16 | 1992-12-31
  1993-12-16 | 1993-12-31
  1994-12-16 | 1994-12-31
  1995-12-16 | 1995-12-31
  1996-12-16 | 1996-12-31
  1997-01-01 | 1997-12-31
  1998-01-01 | 1998-12-31
  1999-01-01 | 1999-12-31
  2000-01-01 | 2000-12-31
  2001-01-01 | 2001-12-31
  2002-01-01 | 2002-12-31
  2003-01-01 | 2003-12-31
  2004-01-01 | 2004-12-31
  2005-01-01 | 2005-12-31
  2006-01-01 | 2006-05-01

ovvero, una tabella in cui ogni l’intervallo "a - da" superiore ad un  
anno viene "scomposto" nei rispettivi intervalli annuali.

Usando generate_series ottengo qualcosa di lontanamente simile a  
quello che voglio ma non è sufficiente.

Qualcuno ha qualche suggerimento?

Grazie
--
Giorgio Valoti


Responses

pgsql-it-generale by date

Next:From: gabriele.bartoliniDate: 2008-10-27 09:20:42
Subject: Re: Generare righe "intermedie"
Previous:From: Giorgio ValotiDate: 2008-10-22 12:38:01
Subject: Re: another pg diff tool

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group