繁体   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