2015-03-15 4 views

ответ

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; 

Это немного опасно из-за арифметики с плавающей точкой, но это вероятно, будет работать для ваших целей.

+0

Невероятно, что вы это сделаете, кстати. СПАСИБО БОЛЬШОЕ! – SevenOfNine

Смежные вопросы