小编Dan*_*itz的帖子

GROUP BY 可能的序列

我有一个包含以下数据的表,使用 Postgres 9.6:

log_id | 序列 | made_at(时间戳)
206480 1 1
206480 1 2
206480 2 3
206480 3 4
206480 1 5
206480 2 6
206480 4 7
206480 5 8
206480 1 9
206480 2 10
206481 1 11
206481 2 12
206481 3 13
206481 4 14

我必须对 ID 进行分组和聚合,以便获得一系列可能的序列。最后,我希望数据看起来像这样:

log_id | 序列
206480 {1,1,2,3}
206480 {1,2,4,5}
206480{1,2}
206481 {1,2,3,4}

在以下情况下,我想要一个新行(带有序列):

  • log_id变化; 或者
  • 下一个序列号低于当前序列号。

还有另一列指定排序(时间戳),但它在另一个表中(我加入它们并使用该时间戳)。为了使事情更容易,我省略了它,但我们可以假设该列名为made_at.

postgresql gaps-and-islands

6
推荐指数
1
解决办法
839
查看次数

标签 统计

gaps-and-islands ×1

postgresql ×1