|
with t as(select power(2,level-1)a from dual connect by level<=ceil(log(2,1000000000)))
,r as(select a.a+b.a+c.a+d.a+e.a v
from t a,t b,t c,t d,t e
where a.a<b.a and b.a<c.a and c.a<d.a and d.a<e.a),
r1 as(select v rv,lag(v)over(order by v)lv,sum(v)over(order by v)ss from r),
test as(select trunc(dbms_random.value(1,1000000000)) r1,
trunc(dbms_random.value(1,1000000000)) r2
from dual connect by level<=50),
test1 as(select rownum rn,least(r1,r2)r1,greatest(r1,r2)r2 from test),
a as(select rn,r1,rv,ss from r1,test1 where r1 between lv and rv),
b as(select rn,r2,rv,ss from r1,test1 where r2 between lv and rv)
select a.rn,r1,r2,a.rv,b.ss-a.ss from a,b where a.rn=b.rn
;
已选择50行。
已用时间: 00: 00: 22.57 |
|