- 论坛徽章:
- 7
|
回复 2# jacson007
没解决试下我这个- with t(sss,sn,sts) as (
- select 's1',1,'r' from dual
- union all
- select 's1',2,'r' from dual
- union all
- select 's1',3,'s' from dual
- union all
- select 's1',4,'s' from dual
- union all
- select 's1',5,'r' from dual
- union all
- select 's1',6,'r' from dual
- union all
- select 's1',7,'s' from dual
- union all
- select 's1',8,'s' from dual
- union all
- select 's2',1,'r' from dual
- union all
- select 's2',2,'r' from dual
- union all
- select 's2',3,'s' from dual
- union all
- select 's2',4,'s' from dual
- union all
- select 's2',5,'r' from dual
- union all
- select 's2',6,'r' from dual
- union all
- select 's2',7,'s' from dual
- union all
- select 's2',8,'s' from dual
- )
- select sss,sn,sts,dense_rank() over (partition by sss order by rn1,sts) from
- (select sss,sn,sts, sn - dense_rank() over (partition by sss,sts order by sn) - decode(sts,'s',1,0) rn1 from t)
复制代码 |
|