BookmarkSubscribeRSS Feed
Batman
Quartz | Level 8

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;

 

1 REPLY 1
Reeza
Super User

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. 

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 962 views
  • 0 likes
  • 2 in conversation