--间隔一小时
select sysdate + level / 24 as st, sysdate + (level + 1) / 24 as ed
from dual
connect by level < = 24
--添加业务
select intv.st,
intv.ed,
(select count(1)
from t_able t
where t.st >= intv.st
and t.ed <= intv.ed)
from (select sysdate + level / 24 as st, sysdate + (level + 1) / 24 as ed
from dual
connect by level < = 24) intv
--添加业务
select intv.st,
intv.ed,
count(1)
from (select sysdate + level / 24 as st,
sysdate + (level + 1) / 24 as ed
from dual
connect by level < = 24) intv
left join t_able t
on t.st >= intv.st
and t.ed <= intv.ed
group by intv.st, intv.ed
order by intv.st