GRUPA WEDŁUG kolejnych dat ograniczonych lukami

Załóżmy, że masz (w Postgresie 9.1) taką tabelę:

date | value 

które mają w sobie kilka luk (mam na myśli: nie każda możliwa data między min (data) a max (data) ma swój wiersz).

Mój problem polega na tym, jak agregować te dane, aby każda spójna grupa (bez luk) była traktowana oddzielnie, tak:

min_date | max_date | [some aggregate of "value" column] 

Jakieś pomysły, jak to zrobić? Wierzę, że jest to możliwe dzięki funkcjom okna, ale po pewnym czasie próbylag() ilead() Jestem trochę utknięty.

Na przykład, jeśli dane są takie:

 date          | value  
---------------+-------  
 2011-10-31    | 2  
 2011-11-01    | 8  
 2011-11-02    | 10  
 2012-09-13    | 1  
 2012-09-14    | 4  
 2012-09-15    | 5  
 2012-09-16    | 20  
 2012-10-30    | 10  

wyjście (dlasum jako agregat) byłoby:

   min     |    max     |  sum  
-----------+------------+-------  
2011-10-31 | 2011-11-02 |  20  
2012-09-13 | 2012-09-16 |  30  
2012-10-30 | 2012-10-30 |  10  

questionAnswers(2)

yourAnswerToTheQuestion