【发布时间】:2016-12-23 12:18:15
【问题描述】:
我有一个非常特殊的问题。我有一个 4400 万条记录表如下:
SKU | Timestamp | Status
A | 21-09-2016 12:30:00 | 1
B | 21-09-2016 12:30:00 | 1
C | 21-09-2016 12:30:00 | 1
D | 21-09-2016 12:30:00 | 1
A | 21-09-2016 12:39:00 | 0
B | 21-09-2016 12:40:00 | 0
C | 21-09-2016 12:40:00 | 0
D | 21-09-2016 12:45:00 | 0
A | 21-09-2016 12:52:00 | 1
A | 21-09-2016 12:56:00 | 1
A | 21-09-2016 12:58:00 | 1
B | 21-09-2016 12:59:00 | 1
A | 21-09-2016 21:30:00 | 0
现在的要求是我们应该只考虑状态发生变化的记录。例如上表中,SKU A 在 21-09-2016 12:30:00 以状态 1 开始。我们现在查看未来的记录并查看记录何时更改,因此下一次更改将在 21-09-2016 21:30:00 状态变为 0 时看到。现在我们需要一个具有以下输出的表
SKU | Timestamp | Status
A | 21-09-2016 12:30:00 | 1
A | 21-09-2016 12:39:00 | 0
A | 21-09-2016 12:52:00 | 1
A | 21-09-2016 21:30:00 | 0
B | 21-09-2016 12:30:00 | 1
B | 21-09-2016 12:40:00 | 0
B | 21-09-2016 12:59:00 | 1
C | 21-09-2016 12:30:00 | 1
C | 21-09-2016 12:40:00 | 0
D | 21-09-2016 12:30:00 | 1
D | 21-09-2016 12:45:00 | 0
【问题讨论】:
标签: sql postgresql