需要SQL oracle查询来获取记录

时间:2019-02-05 17:58:37

标签: sql oracle

我有一个要求,即我在表中有记录的列表以及时间和时间戳记。...我需要获取距离最近时间戳记30分钟的最新记录。 需要相同的oracle查询

示例

1      21- feb-2018 9:00
2.     21- feb-2018 8.46
3      21- feb-2018 8.48
4      21- feb-2018 8.30
15     21- feb-2018 8.25

输出

4      21- feb-2018 8.30

请帮助

2 个答案:

答案 0 :(得分:0)

如果您至少要说30分钟,那么:

select t.*
from (select t.*, row_number() over (order by date desc) as seqnum
      from t
      where t.date <= (select max(t2.date) from t t2) - interval '30' minute
     )  t
where seqnum = 1;

答案 1 :(得分:0)

为什么不简单呢? :

select t.* 
from table t
where t.date <= (select max(t2.date) from table t2) - interval '30' minute
order by date desc
fetch first 1 rows only;