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)) )

它返回秒,而不是毫秒。它返回秒,而不是毫秒。