Помогите с запросом lag

Добрый день! Есть таблица с timestamp'ами.
Нужно сосчитать количество ситуаций, когда ( предыдущая запись - текущая ) < x

Запрос, просто выводящий разницу:
SELECT timestamp - lag(timestamp, 1) over (order by timestamp) as diff from table;

Заранее спасибо!

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

например, так: SELECT

например, так:
SELECT sum(foo.diff) FROM (SELECT CASE WHEN (timestamp - lag(timestamp, 1) over (ORDER BY timestamp)) < ('1s'::interval) THEN 1 ELSE 0 END AS diff FROM test) AS foo(diff);
или так

WITH foo(diff) AS (SELECT CASE WHEN (timestamp - lag(timestamp, 1) over (ORDER BY timestamp)) < ('1s'::interval) THEN 1 ELSE 0 END AS diff FROM test)
SELECT sum(diff) FROM foo;

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023