GRUPO POR Datas consecutivas delimitadas por lacunas
Suponha que você tenha (no Postgres 9.1) uma tabela como esta:
date | value
que tem algumas lacunas (quero dizer: nem toda data possível entre min (data) e max (data) tem sua linha).
Meu problema é como agregar esses dados para que cada grupo consistente (sem intervalos) seja tratado separadamente, assim:
min_date | max_date | [some aggregate of "value" column]
Alguma ideia de como fazer? Eu acredito que é possível com funções de janela, mas depois de um tempo tentando comlag()
elead()
Estou um pouco preso.
Por exemplo, se os dados são assim:
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
a saída (parasum
como o agregado) seria:
min | max | sum
-----------+------------+-------
2011-10-31 | 2011-11-02 | 20
2012-09-13 | 2012-09-16 | 30
2012-10-30 | 2012-10-30 | 10