create table t1(a varchar(10),b number);
insert into t1 values(1,10);
insert into t1 values(2,10);
insert into t1 values(3,10);
insert into t1 values(4,10);
insert into t1 values(5,10);
insert into t1 values(6,10);
insert into t1 values(8,100);
insert into t1 values(9,200);
#第一行至当前行的汇总
select a,b,sum(b) over(order by a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) sum_1 from t1;
A B SUM_1
---------- ---------- ----------
1 10 10
2 10 20
3 10 30
4 10 40
5 10 50
6 10 60
8 100 160
9 200 360
#当前行到最后一行的汇总
select a,b,sum(b) over(order by a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) sum_1 from t1;
A B SUM_1
---------- ---------- ----------
1 10 360
2 10 350
3 10 340
4 10 330
5 10 320
6 10 310
8 100 300
9 200 200