Mega Code Archive

 
Categories / Oracle PLSQL Tutorial / Analytical Functions
 

Unbounded Following

SQL> SQL> -- create demo table SQL> create table myTable(   2    id           NUMBER(2),   3    value        NUMBER(6,2)   4  )   5  / Table created. SQL> SQL> -- prepare data SQL> insert into myTable(ID,  value)values (1,9); 1 row created. SQL> insert into myTable(ID,  value)values (2,2.11); 1 row created. SQL> insert into myTable(ID,  value)values (3,3.44); 1 row created. SQL> insert into myTable(ID,  value)values (4,-4.21); 1 row created. SQL> insert into myTable(ID,  value)values (5,10); 1 row created. SQL> insert into myTable(ID,  value)values (6,3); 1 row created. SQL> insert into myTable(ID,  value)values (7,-5.88); 1 row created. SQL> insert into myTable(ID,  value)values (8,123.45); 1 row created. SQL> insert into myTable(ID,  value)values (9,98.23); 1 row created. SQL> insert into myTable(ID,  value)values (10,938.23); 1 row created. SQL> insert into myTable(ID,  value)values (11,984.23); 1 row created. SQL> insert into myTable(ID,  value)values (12,198.23); 1 row created. SQL> insert into myTable(ID,  value)values (13,928.87); 1 row created. SQL> insert into myTable(ID,  value)values (14,25.37); 1 row created. SQL> insert into myTable(ID,  value)values (15,918.3); 1 row created. SQL> insert into myTable(ID,  value)values (16,9.23); 1 row created. SQL> insert into myTable(ID,  value)values (17,8.23); 1 row created. SQL> SQL> select * from myTable   2  /         ID      VALUE ---------- ----------          1          9          2       2.11          3       3.44          4      -4.21          5         10          6          3          7      -5.88          8     123.45          9      98.23         10     938.23         11     984.23         ID      VALUE ---------- ----------         12     198.23         13     928.87         14      25.37         15      918.3         16       9.23         17       8.23 17 rows selected. SQL> SQL> SELECT id "ID", value,   2    SUM(value) OVER(ORDER BY id   3      ROWS BETWEEN CURRENT ROW   4      AND UNBOUNDED FOLLOWING) "Running total"   5  FROM myTable   6  ORDER BY id;         ID      VALUE Running total ---------- ---------- -------------          1          9      4,249.83          2       2.11      4,240.83          3       3.44      4,238.72          4      -4.21      4,235.28          5         10      4,239.49          6          3      4,229.49          7      -5.88      4,226.49          8     123.45      4,232.37          9      98.23      4,108.92         10     938.23      4,010.69         11     984.23      3,072.46         ID      VALUE Running total ---------- ---------- -------------         12     198.23      2,088.23         13     928.87      1,890.00         14      25.37        961.13         15      918.3        935.76         16       9.23         17.46         17       8.23          8.23 17 rows selected. SQL> SQL> -- clean the table SQL> drop table myTable   2  / Table dropped. SQL>