我有一个带有时间戳的table1
,按添加的"时段ID"分组:
Period ID (uuid) Created At (timestamptz)
A 2017-04-11 11:13:47.997+00
A 2017-04-11 14:42:51.843+00
B 2017-05-21 15:18:12.973+00
B 2017-05-21 15:28:41.054+00
B 2017-05-21 15:28:57.577+00
C 2017-06-11 22:48:00.637+00
D 2017-07-15 14:45:52.343+00
D 2017-07-15 14:47:53.343+00
E 2017-08-25 16:22:57.612+00
F 2017-09-16 00:10:18.577+00
我需要创建一个新ID"Period ID 2"作为Period ID的子集,以便:
- UUID填充在新列"时段ID 2"的第一行中.
- for each 不同的时段ID值生成一个新的时段ID 2(例如:所有时段ID为"A"的时间戳可以具有相同的"时段ID 2",时段ID为"B"的时间戳可以具有相同的"时段ID 2".但A和B的"时段ID 2"不能相同)
- 对于具有相同"周期ID"的记录,如果连续时间戳之间的差异超过10分钟,则应生成新的"周期ID 2".(例如:对于"Period ID"=B的记录,第一个和第二个时间戳之间的间隔大于10分钟,因此将为第二个值生成新的"Period ID 2".第二个和第三个记录之间的间隔小于10分钟,因此第二个和第三个记录将具有相同的"Period ID 2").
因此,输出应如下所示:
Period ID (uuid) Created At (timestamptz) Period2 (uuid)
A 2017-04-11 11:13:47.997+00 1
A 2017-04-11 14:42:51.843+00 2
B 2017-05-21 15:18:12.973+00 3
B 2017-05-21 15:28:41.054+00 4
B 2017-05-21 15:28:57.577+00 4
C 2017-06-11 22:48:00.637+00 5
D 2017-07-15 14:45:52.343+00 6
D 2017-07-15 14:47:53.343+00 6
E 2017-08-25 16:22:57.612+00 7
F 2017-09-16 00:10:18.577+00 8
我可以添加列,但我不确定如何填充它.我查看了以下流程:ALTER TABLE
、CREATE FUNCTION
(用于触发功能)、CREATE TRIGGER
、...但我无法正确地查询它.有没有其他方法来解决这个问题?