按时间间隔分组

时间:2015-03-15 00:22:50

标签: sqlite group-by

假设我有一个类似

的表格

enter image description here

如何创建像

这样的表格

enter image description here

其中组创建的时间间隔长度为1秒。

提前谢谢!

1 个答案:

答案 0 :(得分:2)

这是一个想法,但你需要一个数字表

select (m.startts + n.n - 1) as starttime,
       (m.startts + n.n) as enddtime,
       sum(case when vehicle_type = 'bus' then 1 else 0 end) as bus,
       sum(case when vehicle_type = 'car' then 1 else 0 end) as car
from (select min(Timestamp) as startts from table t) m cross join
     (select 1 as n union all select 2 union all select 3) n left join
     table t
     on t.timestamp >= m.startts + n.n - 1 and 
        t.timestamp < m.startts + n.n
group by m.startts + n.n;

由于浮点运算,这有点危险,但它可能适用于您的目的。