BookmarkSubscribeRSS Feed
dad316
Calcite | Level 5

I have a table that contains order ID numbers.

When an order is updated, the observation for that order isn't updated. Instead, a new observation is inserted into the dataset so there would be two observations for a single order.

 

There is a variable that identifies the iteration of the observation for a particular order ID. So, the initial order will be iteration 1. If an order is updated, there will be a 2nd record that that order where the iteration number is 2. 


How would I query this table to return only observations with the highest iteration number for a each order id?

4 REPLIES 4
novinosrin
Tourmaline | Level 20

Well, wouldn't you be wanting to query and filer on getting max of the dates for the order id's? To me this makes sense to get the latest inserted row considering the latest insert would have the most recent date, right?

dad316
Calcite | Level 5

Hi  novinosrin

 

PaigeMiller
Diamond | Level 26

UNTESTED CODE

 

proc sql;
    create table want as select * from have group by order_id having iteration_number=max(iteration_number);
quit;
--
Paige Miller
dad316
Calcite | Level 5

Hmm, i think this will work actually. I'll test it and get back to you in a bit

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of 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
  • 4 replies
  • 958 views
  • 0 likes
  • 3 in conversation