Hello @NewUsrStat,
You can use PROC SUMMARY to create an output dataset with the maximum of MY_VALUE per ID:
proc summary data=have;
by id;
var my_value;
output out=want(drop=_:) max=;
run;
If your real dataset is only grouped, but not sorted by ID, add the NOTSORTED option to the BY statement:
by id notsorted;
If it is not grouped either, use the NWAY option and the CLASS statement instead of the BY statement:
proc summary data=have nway;
class id;
...