Well, this is quite natural. Adding more group variables results in finer granularity, causing more records to be written.
See this as a short example:
data have;
input var1 var2 var3 var4 var5;
cards;
1 1 1 1 2
1 1 1 2 2
1 1 2 1 3
1 1 2 2 3
1 2 1 1 1
2 1 1 1 2
2 2 1 1 2
;
run;
proc sql;
create table want1 as
select var1, var2, sum(var5) as var5
from have
group by var1, var2
;
create table want2 as
select var1, var2, var3, var4, sum(var5) as var5
from have
group by var1, var2, var3, var4
;
quit;
title "2 group vars";
proc print data=want1 noobs;
run;
title "4 group vars";
proc print data=want2 noobs;
run;
This results in the following outputs:
2 group vars
var1 var2 var5
1 1 10
1 2 1
2 1 2
2 2 2
4 group vars
var1 var2 var3 var4 var5
1 1 1 1 2
1 1 1 2 2
1 1 2 1 3
1 1 2 2 3
1 2 1 1 1
2 1 1 1 2
2 2 1 1 2
Since multiple values of var3 and var4 are present in the first two groups built with var1 and var2, those are split into extra lines.
... View more