I know that the following SQL code is used to get the second-lowest value overall from a table:
PROC SQL;
SELECT id, min (value)
FROM table_name
WHERE value NOT IN (SELECT min (value)
FROM table_name);
How can I modify the Sql code I have to achieve this? Or is there any other way to do this?
data step it for this task in SAS:
data have;
input id value;
cards;
1 1
1 2
1 3
3 300
3 200
3 100
2 3
2 4
2 5
;
run;
proc print data=have;
run;
proc sort data=have out=want;
by id value;
run;
data want;
set want;
by id;
if first.id then Marker=0;
Marker+1;
if marker = 2;
drop Marker;
run;
proc print data=want;
run;
Bart
Don't use SQL. Use PROC SORT or PROC RANK.
data step it for this task in SAS:
data have;
input id value;
cards;
1 1
1 2
1 3
3 300
3 200
3 100
2 3
2 4
2 5
;
run;
proc print data=have;
run;
proc sort data=have out=want;
by id value;
run;
data want;
set want;
by id;
if first.id then Marker=0;
Marker+1;
if marker = 2;
drop Marker;
run;
proc print data=want;
run;
Bart
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!
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.