BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
jaycieleung
Calcite | Level 5

Hi, I'm new to SAS and I'm looking for a way to assign the maximum value of a group to the MaxInGroup column like below:


Group | Value | MaxInGroup (the resulting column)

A         | 1        | 2

A         | 2        | 2

B         | 2        | 4

B         | 3        | 4

B         | 4        | 4

C         | 5        | 5 

 

What I did is to use the proc sort statement to arrange the Group and Value column in descending order and if first.Group=1 and first.Value=1, assign MaxInGroup = Value. But I'm stuck at how to assign the same MaxInGroup value for the rest of the group.

 

Thanks a lot.

1 ACCEPTED SOLUTION

Accepted Solutions
ChrisNZ
Tourmaline | Level 20

Like this?

proc sql;
  create table WANT as 
  select *, max(VAR) as MAX
  from TABLE
  group by ID;
quit;

No need for a prior sort

 

View solution in original post

2 REPLIES 2
ChrisNZ
Tourmaline | Level 20

Like this?

proc sql;
  create table WANT as 
  select *, max(VAR) as MAX
  from TABLE
  group by ID;
quit;

No need for a prior sort

 

jaycieleung
Calcite | Level 5

That worked! thanks very much!

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


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
  • 2 replies
  • 2031 views
  • 1 like
  • 2 in conversation