BookmarkSubscribeRSS Feed
BTAinRVA
Quartz | Level 8

I know I've done this before but can't find the code. I have a table listing case managers and I want to create a variable CM_Cnt that I can use to count the number of distinct managers each quarter. I think the code looked something like that below but it ain't working.

 

Proc sql;

create table MEPRS2 as

select *, (1/count(distinct  Case_Manager)) as CM_Cnt

from MEPRS

group by Year, Qtr, Case_Manager

;

quit;

 

Any help greatly appreciated!

6 REPLIES 6
Astounding
PROC Star

This ought to be closer:

 

Proc sql;

create table MEPRS2 as

select count(distinct  Case_Manager) as CM_Cnt

from MEPRS

group by Year, Qtr

;

quit;

BTAinRVA
Quartz | Level 8

Thanks Astounding! I'll give that a try in the morning.

Patrick
Opal | Level 21

@BTAinRVA

You might also want to add Year and Qtr to the select clause.

Proc sql;
  create table MEPRS2 as
  select Year, Qtr,count(distinct  Case_Manager) as CM_Cnt
  from MEPRS
  group by Year, Qtr
  ;
quit;
BTAinRVA
Quartz | Level 8

Patrick,

 

Thanks for the reply. That's not quite what I want. Let's say there is a case manager AdamsB who shows up 4 times in Qtr 1 2018 then I want CM_Cnt to be 0.25 for each of those four records so that it sums to 1 when I roll it up to get a count of unique case managers.

BTAinRVA
Quartz | Level 8

Now that I talked myself thru it I came up with the answer:

 

Proc sql;

create table MEPRS2 as

select *, 1/count(Case_Manager) as CM_Cnt

from MEPRS

group by Year, Qtr, Case_Manager

 

;

quit;

 

Patrick
Opal | Level 21

@BTAinRVA wrote:

Patrick,

 

Thanks for the reply. That's not quite what I want. Let's say there is a case manager AdamsB who shows up 4 times in Qtr 1 2018 then I want CM_Cnt to be 0.25 for each of those four records so that it sums to 1 when I roll it up to get a count of unique case managers.


That's what the DISTINCT in the count already does for you.

data MEPRS;
  year=2017;
  do Qtr=1,2;
    Case_Manager='A';
    output;output;output;
  end;
  stop;
run;

Proc sql;
  create table MEPRS2 as
  select Year, Qtr,count(distinct  Case_Manager) as CM_Cnt
  from MEPRS
  group by Year, Qtr
  ;
quit;

Capture.JPG

sas-innovate-2026-white.png



April 27 – 30 | Gaylord Texan | Grapevine, Texas

Registration is open

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!

Register now

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
  • 6 replies
  • 1740 views
  • 2 likes
  • 3 in conversation