分隔连续日期假设你有(从Postgres 9.1)像这样的表:GROUP BY由间隙
date | value
它有它的一些差距(我的意思是:分(日之间并不是每一个可能的日期)和最大(日期)有它的行)。
我的问题是如何让每个一致的组(无间隙)单独处理汇总这些数据,就像这样:
min_date | max_date | [some aggregate of "value" column]
任何想法怎么办呢?我相信这是可能的窗口功能,但经过一段时间尝试lag()
和lead()
我有点卡住了。
例如,如果数据是这样的:
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
输出(用于sum
作为总)将是:
min | max | sum
-----------+------------+-------
2011-10-31 | 2011-11-02 | 20
2012-09-13 | 2012-09-16 | 30
2012-10-30 | 2012-10-30 | 10
发布数据和期望的输出 –
Clodoaldo,感谢您的关注。例如,如果数据是这样的: date \t | |值 --------------- + ------- 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 输出(对于“总和”作为聚合)将是: 分钟| max | sum ----------- + ------------ + ------- 2011-10-31 | 2011-11-02 | 20 2012-09-13 | 2012-09-16 | 30 2012-10-30 | | 10 –
您正在查找的单词是*连续*。看[这个答案](http://stackoverflow.com/a/8015107/398670)。 –