Запрос на «прогон» последовательных столбцов в Postgres

У меня есть таблица:

create table table1 (event_id integer, event_time timestamp without time zone);
insert into table1 (event_id, event_time) values
(1, '2011-01-01 00:00:00'),
(2, '2011-01-01 00:00:15'),
(3, '2011-01-01 00:00:29'),
(4, '2011-01-01 00:00:58'),
(5, '2011-01-02 06:03:00'),
(6, '2011-01-02 06:03:09'),
(7, '2011-01-05 11:01:31'),
(8, '2011-01-05 11:02:15'),
(9, '2011-01-06 09:34:19'),
(10, '2011-01-06 09:34:41'),
(11, '2011-01-06 09:35:06');

Я хотел бы построить оператор, который при заданном событии мог бы возвращать длину «запуска» событий, начинающихся с этого события. Прогон определяется как:

Два события идут вместе, если они находятся в пределах 30 секунд друг от друга.Если А и В бегут вместе, а В и С бегут вместе, то А бегает с С.

Однако мой запрос не должен возвращаться назад во времени, поэтому, если я выбираю событие 2, то только события 2, 3 и 4 должны учитываться как часть запуска событий, начинающихся с 2, а 3 должно возвращаться как длина пробега.

Есть идеи? Я в тупике.

Ответы на вопрос(3)

Ваш ответ на вопрос