[英]SQL Select record within time interval
我有一張桌子,上面有一堆記錄:
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
我為此收到語法錯誤,但是代碼似乎正確。 有人可以幫我一下嗎?
謝謝!
您需要將第一個查詢包裝在括號中。
(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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.