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-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
  • 4 replies
  • 1508 views
  • 0 likes
  • 3 in conversation