Although SQL approach is more native for this problem, here could be one of the Data Step solutions: data have; input group $ :year; cards; A 2011 A 2011 A 2011 A 2011 A 2010 A 2010 A 2010 B 2011 B 2011 B 2011 B 2010 B 2010 B 2009 B 2009 ; data want (drop=_:); retain _y _c ; do until (last.group); set have; by group descending year ; if first.group then do; _y=year; if _y in (2009,2010,2011) then _c=1; end; if _y ne year and year in (2009,2010,2011) then do; _y=year; _c+1; end; end; do until (last.group); set have; by group descending year ; if _c=3 then output; end; _c=0; run; Kindly Regards, Haikuo
... View more