Maybe something similar:
select
field_id,
min(field_from),
max(field_to)
from (
select
field_from,
field_to,
field_id,
sum(willSum) over(partition by field_id order by field_from) as GID
from (
select
field_from,
field_to,
field_id,
case when field_from
= Lag(field_to) over(partition by field_id order by field_from)
then 0 else 1 end as willSum + 1
from
rj_mytest
)
)
group by
field_id,
GID
order by
field_id,
min(field_from);
There are a few similar example: https://forums.oracle.com/thread/969005