使用SQL获取表

时间:2015-07-14 07:38:18

标签: sql hana

这是一个名为track的表,有三列:timespeedisOverSpeed,如下所示

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秒。

1 个答案:

答案 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