0

FireFoxのSQLiteManagerで.sqliteファイルを調べていますが、データが収集されていないかどうかを確認する必要があります。例は千の言葉の価値があります:

ReadDate            ReadValue
1361900350183.00    137
1361899753183.00    139
1361900053183.00    138

は主キーではなく、テーブルはReadDateまたはtimeでソートされていません。[入力テーブルを変更することはできません!]私がやりたいのは、単純なSQLを使用して次のようなテーブルを作成することです。

ReadDate            ReadValue  TimeOffset 
1361899753183.00    139
1361900053183.00    138        300000  // this is ReadDate(1) - ReadDate(0)  
1361900350183.00    137        297000  // this is ReadDate(2) - ReadDate(1)

これにより、データを検査して、データ値がキャプチャされていないかどうかを確認できます(TimeOffsetは300000よりはるかに大きくなります)。しきい値を超えるすべてのTimeOffsetのCOUNTを取得する追加のクエリを作成することもできます。簡単な運動だと思っていることをうまくやるのに苦労しています。結合と並べ替え(並べ替え)の方法は知っていますが、ここでは、ある行を別の行と比較する必要があります。カーソルが必要ですか?そして、余分な列を取得する方法は?語彙を少しでもよく知っていれば、検索語を思いついたので、すぐに答えが見つかると直感しています。どうもありがとう、デイブ

4

1 に答える 1

0

まず、(空の) 列をテーブルに追加します。

ALTER TABLE MyTable ADD COLUMN TimeOffset NUMERIC;

次に、各レコードの は、このレコードの列と次に小さいのレコード、つまり、このレコードよりもさらに小さい最大のレコードの列とTimeOffsetの差です。ReadDateReadDateReadDate

UPDATE MyTable
SET TimeOffset = ReadDate - (SELECT MAX(ReadDate)
                             FROM MyTable AS t2
                             WHERE t2.ReadDate < MyTable.ReadDate);
于 2013-02-27T08:15:55.253 に答える