Hallo,
so sollte es auch gehen:

PHP-Code:
with data (Key1Key2Key3vonbis) as (values
(1111000110005),
(
1111000610010),
(
1121001110015),
(
1111001610020),
(
1111002110030),
(
1111003110057)
),
     
sort (Key1Key2Key3vonbisrn) as (
select key1
       
key2
       
key3
       
von
       
bis,
       
row_number() over (order by key1,key2,key3)
from   data
),
     
gruppen (crngrp_Key1grp_Key2grp_Key3grp_vongrp_bisgruppe) as (
select rn
       
key1
       
key2
       
key3
       
von
       
bis
       
1
from   sort
where  rn 
1
union  all
select rn

       
key1
       
key2
       
key3
       case 
when (key1key2key3) <> (grp_key1grp_key2grp_key3then von 
            when von 
grp_bis 1 then von 
            
else grp_von
       end
,
       
bis,
       case 
when (key1key2key3) <> (grp_key1grp_key2grp_key3then gruppe 
            when von 
grp_bis 1 then gruppe 1
            
else gruppe
       end
from   gruppen
inner  join sort on crn 
rn
)

select grp_key1,
       
grp_key2,
       
grp_key3,
       
min(grp_von),
       
max(grp_bis)
from   gruppen
group  by grp_key1
,grp_key2,grp_key3,gruppe
order  by min
(grp_von)

1    1    1    10001    10010
1    1    2    10011    10015
1    1    1    10016    10057