私はたくさんのレコードを持つテーブルを持っています:
userID testID value time
1 1001 2 2009-09-05 06:25:00
1 1001 4 2009-09-05 07:25:00
1 1001 2 2009-09-05 03:25:00
1 1002 5 2009-09-05 06:25:00
1 1002 6 2009-09-05 07:25:00
1 1002 4 2009-09-05 03:25:00
ユーザーは時刻 x に入力します。入場から最初の X 時間以内の各テストの最新の値を照会したいと考えています。IE 彼が 3:25 に入力し、3 時間以内に最新の値が必要な場合は、戻りたい
1 1001 2 2009-09-05 07:25:00
1 1002 5 2009-09-05 07:25:00
これについて最善の方法はわかりませんが、これまでに試したことは次のとおりです。
SELECT testID, value from table WHERE userID = 1 and
time <= timestamp 'enter_time' + INTERVAL '3 HOURS' as u INNER JOIN
(SELECT testID, max(time) as time from table WHERE time <= timestamp
'enter_time' + INTERVAL '3 HOURS' GROUP BY testID) as q
on u.itemid = q.itemid AND u.time = q.time
これで構文エラーが発生しますが、コードは正しいようです。誰かが私を少し助けてくれますか?
ありがとう!