Dear Developer,
the solution is a bit too long and stupid I would rather if your stick with the Position solution posted already , but anyway it was a try

--------------------------------------------------------------
CREATE OR REPLACE procedure calc_a
is
x number ;
out number ;
begin
select count( id ) into x from a ;
out := 0 ;
for i in 1..x loop
select sum( id ) into out from a
where dbms_rowid.rowid_row_number(rowid) + 1 between 1 and i;
dbms_output.PUT_LINE( out ) ;
end loop ;
end ;

Thanks
Aiman Al-Jumoay