繁体   English   中英

计算SQL Vertica中的时间间隔

[英]Calculate time gaps in SQL vertica

我有以下数据集:

(StartTime,EndTime)
(2,2.30)
(3,4.30)
(5,6)

我需要考虑两者之间的时间差距:

(2,2.30)
(2.30,3)
(3,4.30)
(4.30,5)
(5,6)

如何在SQL中实现这一目标。 我正在使用vertica数据库。

基本上,您将需要使用LEAD来生成介于两者之间的行。 GFI也有时间序列,但说实话,它并不能很好地解决这个问题,因为您要处理的是时间范围,而不是静态时间。

CREATE TABLE mytable (StartTime interval,EndTime interval)

INSERT into mytable VALUES  ( INTERVAL '2 minutes', INTERVAL '2.5 minutes');
INSERT into mytable VALUES  ( INTERVAL '3 minutes', INTERVAL '4.5 minutes');
INSERT into mytable VALUES  ( INTERVAL '5 minutes', INTERVAL '6 minutes');

SELECT StartTime, EndTime 
from mytable
union all
SELECT EndTime, lead (StartTime, 1) OVER (order by StartTime)
from mytable
order by 1

您最终会得到一条记录,该记录指示一个开放范围,如果您不希望它可以过滤掉。 如果需要,您还可以添加另一个联合以获取类似的时间记录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM