可以通过增加一个nexttime时间列,通过group by segment(状态)实现
time=[2022.05.19 12:10:10,2022.05.19 12:10:11,2022.05.19 12:10:20,2022.05.19 12:10:22,2022.05.19 12:10:50] v=[1,1,3,1,1] t = table(time, v) t[`nextTime] = next(t.time) select first(time) as startTime, sum(nextTime - time) as duration, first(v) as v from t group by segment(v)