Средняя длина интервала между парами последовательных меток времени

У меня есть таблица со столбцом timestamp (timestamp with time zone). Я хочу знать медианную длину интервала между каждой парой последовательных меток времени.

Например, с отметками времени (в тот же день) 08:00, 08:10, 08:30, 09:00 я хочу 20 minutes, потому что средний интервал между последовательными отметками времени составляет 20 минут.

Я пытался работать с оконными функциями и опережением/отставанием, но безуспешно.

Этот код может быть полезен при настройке ситуации.

CREATE TABLE timestamps (
    "timestamp" timestamp with time zone
);
COPY timestamps ("timestamp") FROM stdin;
2017-08-02 08:00:53.550685-00
2017-08-02 08:10:53.550685-00
2017-08-02 08:30:53.550685-00
2017-08-02 09:00:53.550685-00
\.

person Hatshepsut    schedule 02.08.2017    source источник


Ответы (1)


Пытаться:

SELECT PERCENTILE_CONT(0.5) WITHIN GROUP(ORDER by X) FROM 
(
SELECT *,
       timestamps - lag(timestamps) over (order by timestamps) As x
FROM Table1
) x

Демонстрация: http://sqlfiddle.com/#!17/9bfe9/5

person krokodilko    schedule 02.08.2017