Looks like you are trying to generate TOTAL, not move it from one observation to another.
You could just calculate the total and then combine it back onto the data set.
proc summary data=overall;
var n;
output out=total sum=total;
run;
data final;
set overall;
if _n_=1 then set total(keep=total);
prpl=n/total;
run;
Here is a way to do it in one step:
data final;
do until(eof1);
set overall end=eof1;
total+n;
end;
do until(eof2);
set overall end=eof2;
prpl=n/total;
output;
end;
run;