gpt4 book ai didi

sql - 获取停止(第 x 行)和开始(第 x+1 行)之间的时间间隔

转载 作者:行者123 更新时间:2023-11-29 12:58:28 26 4
gpt4 key购买 nike

我在 PostgreSQL 9.5 中有一个表,每行都有两个时间戳timestampstarttimestampstop

CREATE TABLE routes(
ID serial PRIMARY KEY,
TIMESTAMPSTART timestamp default NULL,
TIMESTAMPEND timestamp default NULL
);

现在我不想计算开始和停止之间的间隔,而是计算停止和下一次开始之间的间隔。所以我想要 x 行的 TIMESTAMPSTOP 和 x+1 行的 TIMESTAMPSTART 之间的间隔。对了,ID不是按时间顺序排列的!

最佳答案

如果“事件”之间没有重叠,那么你可以做一个简单的窗口函数。查询可以很简单:

SELECT id, lead(timestampstart) OVER (ORDER BY timestampstart) -
timestampend AS timetonext
FROM routes;

SQLFiddle

这个解决方案比 Erwin's solution 快一个数量级: http://www.sqlfiddle.com/#!15/551e2/4

关于sql - 获取停止(第 x 行)和开始(第 x+1 行)之间的时间间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36670807/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com