Вы можете сделать это с подразделами выбрать в пункте where
:
select *
from messages
where inserted_at >=
(select max(inserted_at) - interval '90 minute'
from messages
)
order by inserted_at desc
limit 2
... и просто указать интервал по вашему выбору, и предельное значение.
Обратите внимание, что два условия (ограничение записи N, ограничение по дате) находятся в соревновании, и вы можете получить меньше записей, чем N, или же исключить некоторые сообщения, хотя они находятся в пределах даты/времени.
См SQL fiddle
Если вы имели в виду, что условие дата/время должна была быть разница во времени минимум, затем повернуть вокруг где условия от >=
к <=
:
select *
from messages
where inserted_at <=
(select max(inserted_at) - interval '90 minute'
from messages
)
order by inserted_at desc
limit 2
Можете ли вы предоставить образец данных и ожидаемых результатов? – sgeddes