首页 > 解决方案 > 在 SQL 中计算当前行和下一个可用日期值之间的差异

问题描述

我得到了当前问题重置和下一个停止时间之间的差异Postgres SQL。我无法理解,如何使用窗口函数完成此操作。我试过NEXT_VALUEand FIRST_VALUE,但我看到了移动聚合的例子。我需要一个查询来得到这个。

我需要实现两者之间的差异'22/08/2020 11:29:00''17/08/2020 11:19:00'这告诉我运行时间的持续时间。

在此处输入图像描述

标签: sqlpostgresqldatetimewindow-functionsgaps-and-islands

解决方案


看起来你想要 eachstoptime和 latest prior之间的区别issue。如果问题和停止时间正确交错,正如您在评论中解释的那样,那么您可以使用如下窗口函数:

select t.*, stop_time - max_issue as diff
from (
    select t.*, max(issue) over(order by issue) max_issue
    from mytable t
) t
where stop_time is not null

推荐阅读