目标是在 10 分钟间隔内组合具有相同 ID 的 Time_a。并将 ID 分组。
ID Time_a -> ID
------------ ----------
1 12:10:00 1
1 12:15:00 2
1 12:20:00 2
2 12:25:00
2 12:35:00
2 02:00:00
它变成了两个“2”,因为第 5 行和第 6 行之间的时间间隔超过 10 分钟。我能够在 10 分钟的差异内组合,但它不区分 ID。
select ID
from(
select id, Time_a, min(time) OVER (order by id, time rows between 1 preceding and 1 preceding) prev_t_stamp
from dual
)
where abs(Time_a-prev_t_stamp)>10/1440