The code below creates a unique count of the variable y for each value of x and a summary row. However, it requires two queries and a data step. Is there a way to all in one query?
/*sample data*/
data a;
input x $1. y 1.;
datalines;
a1
a2
a2
b1
b3
;
run;
proc sql;
/*first query*/
create table b as select x, n(distinct y) as y_cnt
from a
group by x;
/*second query*/
create table c as select 'Total' as x, n(distinct y) as y_cnt
from a;
quit;
data d;
length x $5;
/*append queries*/
set b c;
run;
Do your records overlap within X/ by group?
ie If you sum the total from the summary total are you expecting it to add to the total, or do you need a separate distinct count because of the overlap?
If you need that distinction I can't think of an alternative 😞
Hopefully someone else can, so partially responding to see if there is a solution to this problem.
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.