私は次のような問題があります:車両が動いている頂点とエッジを持つネットワークがあります。車両が頂点に達するたびに、現在のタイムスタンプと頂点および車両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データベースのヒントも歓迎します!私は、正確なsqliteの構文を持っていないが、私は二段階でこの近づくだろう事前に
おかげで、 杉