为什么lag()函数无法在pgAdmin4和postgresql10.5中提供正确的输出

时间:2018-12-11 21:18:51

标签: postgresql-10 pgadmin-4

尽管此博客已有3 1/2年的历史,但请您澄清一下。这篇博文完全解释了我面临的一个问题(并提供了一个很好的答案)。

https://blog.jooq.org/2015/05/12/use-this-neat-window-function-trick-to-calculate-time-differences-in-a-time-series/

因此,我在pgAdmin 4中使用表名复制了SQL语法,并在表中添加了一个名为“ delta”的新列,并运行了查询。但是,我得到的答案远非如此,“ delta”中的值全为零(00:00:00),而我的等效列为“ ts”(我有一个名为“ utc_timestamp”的列-格式为“带时区的时间戳” ')还显示了不同的值-'2018-10-02'17:00:00-07'而不是原始值->'2018-10-03 01:47:30-07'。我的PostgreSQL版本是10.5,并在pgAdmin 4中进行了查询。

我发现的唯一区别是示例列“ ts”的数据类型为“时间戳”,而我的“ utc_timestamp”列的数据类型为“带有时区的时间戳”

这是我从博客改编并使用pgAdmin 4运行它的SQL:

SELECT
utc_timestamp,
utc_timestamp 
    – lag(utc_timestamp, 1) OVER (ORDER BY utc_timestamp) delta
FROM newtable1
ORDER BY utc_timestamp;

我在做什么错了?

0 个答案:

没有答案