私は構造を持つテーブルを持っています:
id, timestamp, deviceId, datatype, measure
列メジャーの値は、データ型の値を表します。たとえば、処理が開始されたとき、データ型は 19 で測定値は 1 です。処理が完了すると、データ型は 19 のままで、値は 0 で、新しい行は同じタイムスタンプ、データ型 54、および値が何らかの値として挿入されます。これは、完了時に、システムが何らかのトリガーを呼び出してこのテーブルを更新していることを意味します。以下のデータ例
1001, 2013-01-02 09:20:00, 501, 19, 1
1005, 2013-01-02 10:00:00, 501, 19, 0
1006, 2013-01-02 10:00:00, 501, 54, 65
1005 と 1006 のタイムスタンプは同じで、1001 のタイムスタンプは常に 1005 のタイムスタンプよりも小さい
1011, 2013-01-02 09:20:00, 601, 19, 1
1015, 2013-01-02 10:00:00, 601, 19, 0
1016, 2013-01-02 10:00:00, 601, 54, 105
1015 と 1016 のタイムスタンプは同じで、1011 のタイムスタンプは常に 1015 のタイムスタンプよりも小さい
1021, 2013-01-02 09:20:00, 701, 19, 1
1022, 2013-01-02 10:00:00, 701, 19, 0
1023, 2013-01-02 10:00:00, 701, 54, 81
1022 と 1023 のタイムスタンプは同じで、1021 のタイムスタンプは常に 1022 のタイムスタンプよりも小さい
この同じプロセスが、複数のデバイスで同時に発生する可能性があります。
ここでの要件は、完了した各トランザクションの開始時刻と終了時刻を次のように見つけることです
1006, 2013-01-02 09:20:00, 2013-01-02 10:20:00, 501, 65
1016, 2013-01-02 09:20:00, 2013-01-02 10:20:00, 601, 105
1023, 2013-01-02 09:20:00, 2013-01-02 10:20:00, 701, 81
私は約 5 年後に SQL クエリを作成しており、完全に立ち往生しています。ポインタ/提案は高く評価されます。
前もって感謝します