次の構造の SQL テーブルがあります。
CREATE TABLE dataLog (
tstamp datetime NOT NULL,
identifier smallint NOT NULL,
payload binary(46) NOT NULL,
PRIMARY KEY (tstamp, identifier));
このテーブルでは、ロギング インフラストラクチャが多くのデバイスのデータをログに記録します。デバイス識別子の範囲は、次のとおりです。1 から 125 まで。つまり、列「識別子」には 1 から 125 の値があります。ペイロード列には、各デバイスからのバイナリ データ (ログ情報、温度など) が保持されます。tstamp 列には、現在の時刻情報が保持されます。
特定の時点での各デバイスの「スナップショット」情報を取得するクエリを作成するにはどうすればよいですか。たとえば、たとえば、各識別子(125)のペイロード列の値が何であるかを知りたいです。2012-06-12 12:00:00。テーブル内のデータは、デバイスが送信したときに書き込まれたものです。そのため、データは上記の正確なタイムスタンプではありませんが、たとえば. 2012-06-12 11:59:59 に 2 台のデバイスがデータを送信し、2012-06-12 11:15:30 に 10 台のデバイスがデータを送信したなどです。データは時間をさかのぼって検出する必要があります。
期待される結果: 各識別子、各測定のタイムスタンプ、および各識別子のペイロード値を含む 125 行。
データは、たとえば描画するために必要です。特定のタイムスタンプでの 1 から 125 までのすべてのデバイスの温度のプロット。5分のステップ。