我有一个 PostgreSQL 表df
,其中包含以下信息:
区域 ID | 行程编号 | 时间戳 |
---|---|---|
A | 3 | 29/06/2022 17:18:03 |
A | 2 | 29/06/2022 17:18:02 |
A | 1 | 29/06/2022 17:18:01 |
乙 | 1 | 2022年6月28日 19:21:03 |
C | 3 | 28/06/2022 19:21:02 |
e | 3 | 28/06/2022 19:21:01 |
e | 2 | 27/06/2022 17:36:03 |
C | 2 | 27/06/2022 17:36:02 |
C | 1 | 27/06/2022 17:36:01 |
e | 1 | 27/06/2022 16:55:03 |
我想添加一个列,用于检查特定的continuous
是否从第一次访问开始按时间顺序排列。trip_nr
area_id
timestamp
换句话说,continuous=True
如果area_id
第 n 次访问 an,并且之前的访问area_id
从 n, n-1,...,1 一直都是相同的。
并且,continuous=False
如果 anarea_id
被第 n 次访问,但area_id
在访问 n, n-1,...,1 之间的某个位置访问了一个不同的对象(即trip_nr
s 的序列在某个点被破坏)。
所需输出的示例:
区域 ID | 行程编号 | 时间戳 | 连续的 |
---|---|---|---|
A | 3 | 29/06/2022 17:18:03 | 真的 |
A | 2 | 29/06/2022 17:18:02 | 真的 |
A | 1 | 29/06/2022 17:18:01 | 真的 |
乙 | 1 | 2022年6月28日 19:21:03 | 真的 |
C | 3 | 28/06/2022 19:21:02 | 错误的 |
e | 3 | 28/06/2022 19:21:01 | 错误的 |
e | 2 | 27/06/2022 17:36:03 | 错误的 |
C | 2 | 27/06/2022 17:36:02 | 真的 |
C | 1 | 27/06/2022 17:36:01 | 真的 |
e | 1 | 27/06/2022 16:55:03 | 真的 |
我怎样才能以最佳方式实现这一目标?也欢迎 Clickhouse/SQL 解答。
请注意,时间戳不一定按顺序存储。