【发布时间】:2015-09-04 03:31:52
【问题描述】:
我有一张如下表:
+------+-----+------+-------+
| ID | day | time | count |
+------+-----+------+-------+
| abc1 | 1 | 12 | 1 |
| abc1 | 1 | 13 | 3 |
| abc1 | 2 | 14 | 2 |
| abc2 | 2 | 18 | 4 |
| abc2 | 2 | 19 | 8 |
| abc2 | 3 | 15 | 3 |
+------+-----+------+-------+
如果 ID 相同,我想要做的是从下一行中减去“计数”,这一天的值与当前行的值相同,并且时间大一个值(例如 +1)。 所以我想得到的新表有这样的布局:
+------+-----+------+-------+------------+
| ID | day | time | count | difference |
+------+-----+------+-------+------------+
| abc1 | 1 | 12 | 1 | 2 |
| abc1 | 1 | 13 | 3 | null |
| abc1 | 2 | 14 | 2 | null |
| abc2 | 2 | 18 | 4 | 4 |
| abc2 | 2 | 19 | 8 | null |
| abc2 | 3 | 15 | 3 | null |
+------+-----+------+-------+------------+
如您所见,仅减去具有相同 ID、日期和时间差 1 的行。
【问题讨论】:
标签: sql postgresql subtraction