我有以下问题:我有一个带有顶点和边的网络,车辆在上面移动。每次车辆到达顶点时,当前时间戳以及顶点和车辆 ID 都会记录到数据库中。我需要一个表格,其中包含车辆在两个顶点之间所需的时间差。
注意:条目是按时间戳升序记录的,但不一定是 car_ids 或crossing_ids。
例子:
| ID | Car_id | Crossing_id | TIMESTAMP |
| 1 | 1 | 1 | 2010-09-25 05:20:00 |
| 2 | 1 | 2 | 2010-09-25 05:23:00 |
| 3 | 2 | 1 | 2010-09-25 05:25:00 |
| 4 | 1 | 3 | 2010-09-25 05:35:00 |
| 5 | 2 | 5 | 2010-09-25 05:42:00 |
想要的结果:
| Car_id | Crossing_id_start | Timestamp_start | Crossing_id_end | Timestamp_end |
| 1 | 1 | 2010-09-25 05:20:00 | 2 | 2010-09-25 05:23:00 |
| 1 | 2 | 2010-09-25 05:23:00 | 3 | 2010-09-25 05:35:00 |
| 2 | 1 | 2010-09-25 05:25:00 | 5 | 2010-09-25 05:35:00 |
示例测试数据:
DROP TABLE IF EXISTS "test";
CREATE TABLE "test" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE , "car_id" TEXT NOT NULL , "crossing_id" TEXT NOT NULL , "time" DATETIME);
INSERT INTO "test" VALUES(1,'car_1','crossing_1','2010-09-25 05:20:00');
INSERT INTO "test" VALUES(2,'car_1','crossing_2','2010-09-25 05:23:00');
INSERT INTO "test" VALUES(3,'car_2','crossing_1','2010-09-25 05:25:00');
INSERT INTO "test" VALUES(4,'car_1','crossing_3','2010-09-25 05:35:00');
INSERT INTO "test" VALUES(5,'car_2','crossing_5','2010-09-25 05:42:00');
任何帮助是极大的赞赏; 最喜欢的是 sqlite,但也欢迎任何关于其他 sql 数据库的提示!
提前致谢, 杉