SAS Programming

DATA Step, Macro, Functions and more
BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
pavank
Quartz | Level 8
Data b;
input cc swipe;
cards;
1 200
1 300
1 200
1 900
2 1300
2 1400
2 1500
;
run;




proc sort data=b;
by cc;
run;


data last_second;
  set b;
  by cc;
last_second_value = lag(swipe);
if last.cc then do;
    output;
  end;
  drop swipe;
run;
 How to get last second values using PROC SQL Method 
output
cc swipe
1 200
2 1400
1 ACCEPTED SOLUTION

Accepted Solutions
Kurt_Bremser
Super User

SQL does not have a concept of sequence, it works with sets. Stay with the DATA step, e.g.

data last_second;
do until (last.cc);
  set b;
  by cc;
  if not last.cc then last_second_value = swipe;
end;
drop swipe;
run;

Your code can be simplified by using a Subsetting IF:

data last_second;
set b;
by cc;
last_second_value = lag(swipe);
if last.cc and not first.cc;
drop swipe;
run;

The expanded condition takes care of cases where there's only one observation for a cc group.

View solution in original post

1 REPLY 1
Kurt_Bremser
Super User

SQL does not have a concept of sequence, it works with sets. Stay with the DATA step, e.g.

data last_second;
do until (last.cc);
  set b;
  by cc;
  if not last.cc then last_second_value = swipe;
end;
drop swipe;
run;

Your code can be simplified by using a Subsetting IF:

data last_second;
set b;
by cc;
last_second_value = lag(swipe);
if last.cc and not first.cc;
drop swipe;
run;

The expanded condition takes care of cases where there's only one observation for a cc group.

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
  • 1 reply
  • 389 views
  • 0 likes
  • 2 in conversation