I think you need join the table to itself and get all events where the range of 2 events:
event1.start between event2.start and event2.end
OR
event1.end between event2.start and event2.end
OR
event1.start < event2.start and event1 > event2.end
AND CHECK THAT
event.end can be null
to filter the data - see `where` in query below
to count number of events - use count(*) over ()
test data
insert into events(EVENT_UUID,HOST_NAME,START_TM,END_TM)
values (1,'host1',to_date('12-JUN-15 01.31.04','dd-mon-yy hh24.mi.ss'),to_date('12-JUN-15 01.55.58','dd-mon-yy hh24.mi.ss'))
insert into events(EVENT_UUID,HOST_NAME,START_TM,END_TM)
values (2,'host2',to_date('15-JUN-15 10.02.45','dd-mon-yy hh24.mi.ss'),to_date('15-JUN-15 11.12.18','dd-mon-yy hh24.mi.ss'));
insert into events(EVENT_UUID,HOST_NAME,START_TM,END_TM)
values (3,'host3',to_date('17-JUN-15 03.19.48','dd-mon-yy hh24.mi.ss'),to_date('17-JUN-15 03.51.59','dd-mon-yy hh24.mi.ss'));
insert into events(EVENT_UUID,HOST_NAME,START_TM,END_TM)
values (4,'host4',to_date('18-JUN-15 09.24.36','dd-mon-yy hh24.mi.ss'),null);
insert into events(EVENT_UUID,HOST_NAME,START_TM,END_TM)
values (5,'host5',to_date('18-JUN-15 12.32.43','dd-mon-yy hh24.mi.ss'),to_date('19-JUN-15 01.22.32','dd-mon-yy hh24.mi.ss'));
insert into events(EVENT_UUID,HOST_NAME,START_TM,END_TM)
values (6,'host6',to_date('18-JUN-15 12.45.43','dd-mon-yy hh24.mi.ss'),to_date('19-JUN-15 01.01.32','dd-mon-yy hh24.mi.ss'));
insert into events(EVENT_UUID,HOST_NAME,START_TM,END_TM)
values (7,'host7',to_date('12-JUN-15 01.32.04','dd-mon-yy hh24.mi.ss'),to_date('12-JUN-15 02.55.58','dd-mon-yy hh24.mi.ss'))
query:
select ev1.event_uuid, ev2.event_uuid
, ev1.start_tm, ev1.end_tm
, ev2.start_tm, ev2.end_tm
,count(*) over () as total_count
from events ev1
inner join events ev2
on ((ev1.start_tm between ev2.start_tm and nvl(ev2.end_tm, sysdate))
or (nvl(ev1.end_tm,sysdate) between ev2.start_tm and nvl(ev2.end_tm, sysdate))
or (ev2.start_tm < ev1.start_tm and nvl(ev1.end_tm,sysdate) < nvl(ev1.end_tm, sysdate)))
and ev1.event_uuid != ev2.event_uuid
where to_date('18.06.2015 13', 'dd.mm.yyyy hh24') between ev1.start_tm and nvl(ev1.end_tm,sysdate)
order by 3,4
EVENT_UUID EVENT_UUID START_TM END_TM START_TM END_TM TOTAL_COUNT
1 5 4 18/06/2015 12:32:43 19/06/2015 01:22:32 18/06/2015 09:24:36 3
2 6 5 18/06/2015 12:45:43 19/06/2015 01:01:32 18/06/2015 12:32:43 19/06/2015 01:22:32 3
3 6 4 18/06/2015 12:45:43 19/06/2015 01:01:32 18/06/2015 09:24:36 3