在SQL中将每个组的最小时间分组

时间:2014-03-07 17:23:04

标签: sql postgresql greatest-n-per-group gaps-and-islands

这是一个非常简单的问题,我觉得答案应该是显而易见的,但是我已经两个小时没找到解决方案了。

我愿意转换存储在PostgreSQL中的离散数据通量。它们最初存储为高频样本。因此对于单个时间戳,我可能有多个相似的值。我想进行可变长度采样,因此类似的值只能在序列中存储一次。它听起来像一个简单的count(*)组,但由于我想保持序列的最低时间戳,因此无法以这种方式处理。

t1 2     
t2 2      t1 2 3
t3 2  ->  t4 3 1
t4 3      t5 2 1
t5 2

我希望尽快提出请求。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我找到了解决问题一半的方法。

  1. 计算增量表,dn = tn - tn-1。
  2. ,这不是微不足道的,但可行的
  3. 从第1张桌子中取得所有时间,这些表格在delta表格中都不是0
  4. 我会想念最终的专栏,这会提高阅读性能。现在我需要帮助才能做出优化的请求:

    t1 2      t1 2 3
    t4 3  ->  t4 3 1
    t5 2      t5 2 1