如何拆分重叠的范围?

问题描述 投票:0回答:0

img1 img2

我有 3 个 tsranges 如下图重叠,我如何划分它们以便我们有 0-1 黑色,1-2 绿色,2-3 黑色,3-4 绿色和 4-5 黑色?喜欢 img2?

我试图将它们聚集在一起,但无法抓住果岭之间的黑色时间

id 范围 颜色
01 2023-05-05T20:00:345Z 至 2023-05-05T22:00:345Z 黑色
02 2023-05-05T20:30:345Z 至 2023-05-05T20:42:345Z 绿色
03 2023-05-05T21:00:345Z 至 2023-05-05T21:20:345Z 绿色

结果应该是

id 范围 颜色
01 2023-05-05T20:00:345Z 至 2023-05-05T20:30:345Z 黑色
02 2023-05-05T20:30:345Z 至 2023-05-05T20:42:345Z 绿色
03 2023-05-05T20:42:345Z 至 2023-05-05T21:00:345Z 黑色
04 2023-05-05T21:00:345Z 至 2023-05-05T21:20:345Z 绿色
05 2023-05-05T21:20:345Z 至 2023-05-05T22:00:345Z 黑色
sql postgresql overlap date-range sql-timestamp
© www.soinside.com 2019 - 2024. All rights reserved.