I am doing like this. data l2; input id no; cards; 1 100 2 200 3 300 run; proc sql; select count(max(no)) into :l2 from l2 where id=3; quit; i am getting this ERROR ERROR: Summary functions nested in this way are not supported. i want the output that macro L2 should have count as 1.
For your Ref
You might need to use having keyword for condition of summary variables.
If I have understood what you mean.
data l2; input id no; cards; 1 100 2 200 3 300 run; proc sql; select count(*) into :l2 from l2 where id=3 having no=max(no); quit; %put &l2;
Ksharp
small probelm data l2; input id no; cards; 1 100 2 200 3 300 3 400 run; proc sql; select count(*) into :l2 from l2 where id=3 having no=max(no); quit; %put &l2; But i want the count id =3 and no having max count here the max(no)=400 so i should get count as 1 but it was getting output as 2.
Hi,
Try this...Hope it helps..
proc sql;
select count(id) as count into :s2 from l2 where id =(select max(id) from l2);
quit;
Thanks,
Shiva
It is very intesting . I don't realize it will appear so weird result. Try it.
data l2; input id no; cards; 1 100 2 200 3 300 3 400 ; run; proc sql; select count(*) into :l2 from (select * from l2 group by id having id=3 and no=max(no) ) ; quit; %put &l2;
Ksharp
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.