Is there was a combine the two sql steps below into one?
/*Sample data*/
data one;
input x $1. y 1.;
datalines;
a1
a2
a1
b1
b1
;
run;
proc sql;
/*determine count of distinct values of y for each value of x*/
create table two as select x, count(distinct y) as cnt_y
from one
group by x;
/*determine maximum value of distinct value count*/
select max(cnt_y)
from two;
quit;
Hi @Batman You could do in one step that still doesn't mean it's a one pass though. For brevity, you could modify the code to-
proc sql;
select max(cnt_y)
from (select count(distinct y) as cnt_y from one group by x);
quit;
However the above is still 2 passes akin to your solution
Hi @Batman You could do in one step that still doesn't mean it's a one pass though. For brevity, you could modify the code to-
proc sql;
select max(cnt_y)
from (select count(distinct y) as cnt_y from one group by x);
quit;
However the above is still 2 passes akin to your solution
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
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.
Ready to level-up your skills? Choose your own adventure.