[Solved] find the count of num column changing by id


The following hash approach works for the test data provided with the question:

data have;
input id  number  no_of_times_target;
cards;
1   1       1
1   2       1
1   1       1
1   2       2
1   1       1
1   2       3
2   1       1
2   15      1
2   1       1   
2   1       1
2   1       1
2   15      2
2   1       1
2   15      3
;
run;

data want;
  set have;
  by id;
  if _n_ = 1 then do;
    length prev_number no_of_times 8;
    declare hash h();
    rc = h.definekey('number','prev_number');
    rc = h.definedata('no_of_times');
    rc = h.definedone();
  end;
  prev_number = lag(number);
  if number > prev_number and not(first.id) then do;
    rc = h.find();
    no_of_times = sum(no_of_times,1);
    rc = h.replace();
  end;
  else no_of_times = 1;
  if last.id then rc = h.clear();
  drop rc prev_number;
run;

solved find the count of num column changing by id