By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
create table emp (name varchar2(8), age varchar2(8), course varchar2(8), marks number(3));
insert into emp (name, age, course, marks) values ('A1', 'ABC', 'MCA', 5);
1 rows affected
insert into emp (name, age, course, marks) values ('B1', 'XYZ', 'MBA', 10);
1 rows affected
insert into emp (name, age, course, marks) values ('C1', 'PQR', 'MMS', 14);
1 rows affected
insert into emp (name, age, course, marks) values ('D1', 'YST', 'CAT', 18);
1 rows affected
select
e.*,
sum(marks) over(order by name) as cum_count,
1.0 * sum(marks) over(order by name) / count(*) over(order by name) as avgs_cnt
from emp e
NAME | AGE | COURSE | MARKS | CUM_COUNT | AVGS_CNT |
---|---|---|---|---|---|
A1 | ABC | MCA | 5 | 5 | 5 |
B1 | XYZ | MBA | 10 | 15 | 7.5 |
C1 | PQR | MMS | 14 | 29 | 9.66666666666666666666666666666666666667 |
D1 | YST | CAT | 18 | 47 | 11.75 |