我是新的SQL,并已争夺天,了解如何通过基于时间以前行向后搜索。
我发现在Windows滞后功能可以帮助我在这里,但我还没有找到一种方法来定义一个时间段为它虽然找回来。
如果我输入: -
SELECT food_word_1,
date,
lead(food_word_1,2) OVER (ORDER BY date DESC) as prev_food_word_1
FROM bookmark
WHERE mood = 'allergies'"
结果如下所示: -
food_word_1 | date | prev_food_word_1
-------------+----------------------------+------------------
burritos | 2019-02-01 09:56:40.943341 |
burritos | 2019-02-01 09:56:31.56869 |
burritos | 2019-02-01 09:56:31.34883 | burritos
cereal bar | 2019-01-10 07:24:29.602226 | burritos
almonds | 2019-01-09 08:37:34.223448 | burritos
fennel | 2019-01-09 08:35:44.186134 | cereal bar
我得到一个结果回搜索2行,但我想这样做是有这个向后搜索(滞后)具有与没有与其关联的时间确定的行数行36小时前面,而不是我。
有谁知道这样做的最好的办法吗?
谢谢
这个答案是Oracle,因为这个问题最初是标记甲骨文。
Oracle支持range between
与号码范围,但这些也可以用于日期。尝试这个:
SELECT food_word_1,
date,
lead(food_word_1) OVER (ORDER BY date DESC RANGE BETWEEN 1.5 PRECEDING AND CURRENT ROW) as prev_food_word_1
FROM bookmark
WHERE mood = 'allergies';