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;
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;
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;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
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!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.
Ready to level-up your skills? Choose your own adventure.