我暂时想到这个方法
data n;
input label $ critfl $ count ;
cards;
a no 1
a total 1
b yes 12
b no 2
b total 14
;
run;
proc sql noprint;
create table n1 as
select a.*, b.count as allcount
from n as a left join n(where=(critfl='total')) as b
on a.label=b.label
group by a.label;
quit;
data n2;
set n1;
if critfl ne 'total' then percent= count/allcount *100;
run;