Столбец с задержкой в ​​формате PostgreSQL - PullRequest
0 голосов
/ 28 февраля 2012

Этот запрос отлично подходит для нахождения разницы между последовательными строками:

select id, created_at, created_at - lag(created_at, 1) 
over (order by created_at) as diff
from fistbumps where bumper_id = 2543 
and created_at between '2012-01-11' and '2012-01-12' order by created_at;

... но результаты получаются как:

   id   |         created_at         |      diff       
--------+----------------------------+-----------------
 197230 | 2012-01-11 00:04:31.774426 | 
 197231 | 2012-01-11 00:04:32.279181 | 00:00:00.504755
 197232 | 2012-01-11 00:04:33.961665 | 00:00:01.682484
 197233 | 2012-01-11 00:04:36.506685 | 00:00:02.54502

Что было бы действительно здорово, если быЯ мог бы отформатировать этот столбец различий в несколько секунд и миллис (например, 2,54502).Я пытался использовать date_trunc () и extract (), но не могу понять синтаксис правильно.

1 Ответ

3 голосов
/ 28 февраля 2012

Результатом create_at - lag (create_at) является значение типа interval.

Вы можете получить секунды interval, используя extract(epoch from interval_value)

Так что в вашем случае это будет:

extract(epoch from (created_at - lag(created_at, 1)) )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...