0

指定された日付に最も近いテーブル内の 2 つの行の間の変更を取得できるようにしたいと考えています。テーブル内の行には、以前のスナップショットからのデルタではなく、その特定の時点でのデータが格納されます。

テーブルに含まれていない可能性が高い 2 つの日付をクエリに指定し、その日付範囲内の最も近い 2 つの期間のカウントの差を取得できるようにしたいと考えています。

テーブルの簡単な例を次に示します。

objectID    snapshotTime            dataCount
1           2013-01-01 13:00:00     40
1           2013-01-02 18:00:00     51
1           2013-01-02 19:00:00     59
1           2013-01-03 01:00:00     70
1           2013-01-04 14:00:00     82
1           2013-01-05 17:00:00     99
1           2013-01-06 20:00:00     107

日付2013-01-01 20:00:00とを指定すると2013-01-06 12:00:00、クエリは 48 (99-51) を返す必要があります。

効率的に実行されるようなクエリを作成するにはどうすればよいでしょうか?

4

1 に答える 1

0

それぞれが WHERE を使用して指定された制約の下で時間を維持する 2 つのクエリを試し、ASC を使用して次のレコードを確実に取得します。必要に応じて LIMIT 1 を使用しますが、違いはありません。次に、PHP を使用して各レコードを取得し、差を減算します。

于 2013-02-21T01:59:55.490 に答える