我有messages(id, inserted_at)
表
我想选择N个最近的消息,其中inserted_at列的位置是最近一条消息的2分钟。
这可能吗?
答案 0 :(得分:1)
您可以使用>>> Mediwiki.objects.get(proprietary_name__proprietary_name="Aspirin")
<Mediwiki: acetylsalicylic acid>
>>>
子句中的子选择来执行此操作:
where
...只需指定您选择的时间间隔和限制值。
请注意,这两个条件(记录限制N,日期限制)处于竞争状态,您可能会获得比N更少的记录,或者除非它们在日期/时间限制内,否则会排除一些消息。
请参阅SQL fiddle
如果您认为日期/时间条件是最小时差,那么将where条件从select *
from messages
where inserted_at >=
( select max(inserted_at) - interval '90 minute'
from messages
)
order by inserted_at desc
limit 2
转到>=
:
<=