次の問題があります。車両が動き回る頂点とエッジを持つネットワークがあります。車両が頂点に到達するたびに、現在のタイムスタンプと頂点および車両 ID がデータベースに記録されます。車両が 2 つの頂点間で必要とする時間差を持つテーブルが必要です。
注: エントリはタイムスタンプの昇順でログに記録されますが、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データベースに関するヒントも大歓迎です!
前もってありがとう、スギ