У меня есть таблица:
id | updated_at
1 | 2018-10-22T21:00:00Z
2 | 2018-10-22T21:02:00Z
Я бы хотел найти наибольшую дельту за данный день между ближайшими обновленными временными метками.Например, если было 5 строк:
id | updated_at
1 | 2018-10-22T21:00:00Z
2 | 2018-10-22T21:02:00Z
3 | 2018-10-22T21:05:00Z
4 | 2018-10-22T21:06:00Z
5 | 2018-10-22T21:16:00Z
Наибольшая дельта составляет от 4 до 5 (10 минут).Обратите внимание, что при сравнении я просто хочу найти следующую ближайшую отметку времени updated_at, а затем дать мне max
этого.Мне кажется, что я испортил подзапрос, чтобы сделать это.
with nearest_time(time_diff)
as
(
select datediff('minute', updated_at as u1, (select updated_at from table where updated_at > u1 limit 1) as u2)
group by updated_at::date
)
select max(select time_diff from nearest_time);