1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| with t as (
select 1 as e, NULL as c from dual union all
select 2 as e, 2 as c from dual union all
select 3 as e, NULL as c from dual union all
select 4 as e, NULL as c from dual union all
select 5 as e, NULL as c from dual union all
select 6 as e, 6 as c from dual union all
select 7 as e, 7 as c from dual union all
select 8 as e, NULL as c from dual union all
select 10 as e, 11 as c from dual union all
select 13 as e, 14 as c from dual union all
select 14 as e, NULL as c from dual
),
groupe as (
select e, c
, NVL(sum(c) over (order by e desc) , 0) as gp
from t
)
select min(c) as c, min(e) as resultat
from groupe
group by gp
/*having min(c) is not NULL*/
order by c; |
Partager