这是一个名为track的表,有三列:time
,speed
,isOverSpeed
,如下所示
TIME Speed IsOverSpeed
10:00:01 76 1
10:00:11 58 0
10:00:21 70 1
10:00:31 70 1
10:00:41 90 1
10:00:51 40 0
10:01:01 30 0
10:01:11 80 1
10:01:21 20 0
我想要的是计算overspeed
的汽车的次数和时长,要求是连续的overspeed
记录将被计为1次,在这个例子中,有3次时间overspeed
不是4.我正在考虑使用窗口功能,但似乎不起作用。任何人都有想法吗?
PS。结果应该是3次,50秒。
答案 0 :(得分:0)
我认为你需要这样的东西:
SELECT
COUNT(*) As Cnt, SUM(SECONDS_BETWEEN(dt.prevTime, dt.TIME)) As someTime
FROM (
SELECT t1.TIME, MAX(t2.TIME) As prevTime
FROM aTable t1
JOIN
aTable t2 ON t1.TIME > t2.TIME
WHERE t1.IsOverSpeed = 1
GROUP BY t1.TIME) dt