data a;
input acct $ name $ phone sales;
cards;
t1 a 111 10
t1 a 111 9
t1 a 222 8
t1 b 333 7
t2 b 333 6
t2 b 333 5
t2 c 444 4
t3 c 444 3
t3 c 444 2
;
run;
proc means data=a nway;
class acct;
var sales;
output out=sum_(drop=_type_ _freq_) sum=total;
run;
data sum_;
set sum_;
if _n_=1 then rank=1;
else if acct=lag(acct) then rank=lag(rank);
else rank+1;
run;
proc means data=a nway;
class acct name phone;
var sales;
output out=sum_2(drop=_type_ _freq_) sum=sales;
run;
data f;
retain rank acct total name phone sales;
merge sum_ sum_2;
by acct;
run;