data have;
infile cards expandtabs truncover;
input cust_nbr :$80. txn_id :$40. merchant :$40. txn_amt acct_num :$40. txn_date :date9. txn_time :time8.;
format txn_date date9. txn_time time8.;
cards;
11111111111111111111 A1234 XYZ 1000 0123456789 17Jan2021 23:59:57
11111111111111111111 B9021 XYZ 1000 0123456789 18Jan2021 0:00:03
11111111111111111111 V7619 XYZ 2000 0123456789 18Jan2021 0:00:08
11111111111111111111 W8911 XYZ 2000 0123456789 18Jan2021 0:00:20
22222222222222222 J0569 ABC 3000 9876543210 17Jan2021 8:00:02
22222222222222222 T2801 ABC 3000 9876543210 18Jan2021 9:00:07
;
data have;
set have;
datetime=dhms(txn_date,0,0,txn_time);
run;
data temp;
set have;
by cust_nbr merchant txn_amt;
dif=dif(datetime);
if first.txn_amt then call missing(dif);
run;
data temp;
set temp;
by cust_nbr merchant txn_amt;
if first.txn_amt or dif>60*60*2 then group+1;
run;
data want;
set temp;
by group;
if last.group;
drop dif group datetime;
run;
... View more