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

 Given Data: 

 

Id             Name               Amount
1            Blue                   $30
1               red                  $15
1            Green                  $23
1           Orange                $10

2...

 

I want to create a new column where I need only min value name orange, as the min total amount is $10.

Max function not working for new column as it is sorting in alphabetical order(Character variable). Any way to do it in single data step without joining ? 

I tried with case statement too.

 

Id            Name             Amount      Newcol
1           Blue                 $30             Orange
1            red                  $15             Orange
1           Green               $23            Orange
1           Orange             $10              Orange

 

proc sql;
create table want as
select id, Name,min(Amount) as Min_Tot,
max(Amountt) as Max_Tot, min(name) as Min_name
from table have;
run;

1 ACCEPTED SOLUTION

Accepted Solutions
kiranv_
Rhodochrosite | Level 12

something like this

proc sql;
create table want as
select a.*,b.new_col from 
(select * from have)a
inner join
(select id, name as new_col from have
group by ID
having amount =min(amount))b
on a.id =b.id;

View solution in original post

2 REPLIES 2
kiranv_
Rhodochrosite | Level 12

something like this

proc sql;
create table want as
select a.*,b.new_col from 
(select * from have)a
inner join
(select id, name as new_col from have
group by ID
having amount =min(amount))b
on a.id =b.id;
Kalai2008
Pyrite | Level 9
Thank you It worked!

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