with
t_table(a, b, c) as (
select 8003, 4003, 2003 from dual union all
select 8003, 4003, 2003 from dual union all
select 8003, 4003, 2003 from dual union all
select 8003,4003, 2003 from dual union all
select 8003, 4003, 2003 from dual union all
select 8003, 5003, 2003 from dual union all
select 8003, 5003, 2003 from dual union all
select 8003, 5003, 2003 from dual union all
select 8003, 5003, 2003 from dual union all
select 8003, 5003, 2003 from dual
)
// внутри групп a и с значение может менятся. мне нужно пронумеровать каждое новое значение в нутри групп a и c
select t.a, t.b, t.c, dense_rank() over(partition by t.a, t.c, t.b order by t.b ) rnk_dense
from t_table t ;
/* Результат должен быть таким */
1
1
1
1
1
2
2
2
2
2