KDB:时间间隔联盟

时间:2014-05-06 15:37:30

标签: union kdb

将一系列(可能重叠的)时间间隔转换为一组覆盖相同时间的不相交时间间隔的任何方式都很好吗?

实施例: 区间1:(07:00:00; 08:00:00) 时间间隔2:(07:30:00; 08:30:00) interval3:(10:00:00; 11:00:00)

期望的输出: ((07:00:00; 08:30:00);(10:00:00; 11:00:00))

1 个答案:

答案 0 :(得分:1)

在表格上下文中,您可以执行以下操作:

q)d:([]st:07:00:00 07:30:00 10:00:00; et:08:00:00 08:30:00 11:00:00)
q)d
st       et
-----------------
07:00:00 08:00:00
07:30:00 08:30:00
10:00:00 11:00:00

distinct update st:?[st<prev et;prev st;st], et:et^?[et>next st;next et;et] from d

st       et
-----------------
07:00:00 08:30:00
10:00:00 11:00:00

不确定我是否称之为漂亮,但它还不错!