PostgreSQL格式滞后列
此查询对于查找连续行之间的差异非常有用:PostgreSQL格式滞后列,postgresql,lag,Postgresql,Lag,此查询对于查找连续行之间的差异非常有用: 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 |
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
真正的groovy是,如果我可以将diff列的格式设置为秒和毫秒(例如2.54502)。我尝试使用date\u trunc()和extract(),但语法似乎不正确。created\u at-lag(create\u at)的结果是一个
interval类型的值
您可以使用extract(epoch from interval\u value)
因此,在您的情况下,它将是:
extract(epoch from (created_at - lag(created_at, 1)) )
created_at-lag(create_at)的结果是一个interval
类型的值
您可以使用extract(epoch from interval\u value)
因此,在您的情况下,它将是:
extract(epoch from (created_at - lag(created_at, 1)) )
它返回秒,而不是毫秒。它返回秒,而不是毫秒。