簡體   English   中英

時間間隔內的SQL Select記錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM