<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: select all the value from the highest value in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/select-all-the-value-from-the-highest-value/m-p/473737#M121599</link>
    <description>&lt;P&gt;Retain a reference value, and output only in case the current cate is below that. To make it start at 5, initialize to 6.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile cards dlm='09'x;
input cntnum	servnum	linenum	cate;
cards;
153787	6564	6563	5
153787	6563	6390	4
153787	6562	6561	6
153787	6561	5934	5
153787	6560	6559	6
153787	6559	4532	5
153787	6558	1430	6
153787	6557	3768	5
153787	6556	6555	6
153787	6555	6554	5
153787	6554	6553	4
153787	6553	6552	3
153787	6552	1	2
256434	198	197	3
256434	197	1	2
256434	195	194	5
256434	194	193	4
256434	193	192	3
256434	192	1	2
;
run;

proc sort data=have; /* sort just to be sure */
by cntnum descending servnum;
run;

data want;
set have;
by cntnum;
retain lastcate;
if first.cntnum then lastcate = 6;
if cate &amp;lt; lastcate
then do;
  lastcate = cate;
  output;
end;
drop lastcate;
run;

proc print data=want noobs;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;(note how I put the data into a data step, so that it is easy to recreate the dataset with copy/paste and submit)&lt;/P&gt;
&lt;P&gt;The result matches your want example:&lt;/P&gt;
&lt;PRE&gt;cntnum    servnum    linenum    cate

153787      6564       6563       5 
153787      6563       6390       4 
153787      6553       6552       3 
153787      6552          1       2 
256434       198        197       3 
256434       197          1       2 
&lt;/PRE&gt;</description>
    <pubDate>Wed, 27 Jun 2018 13:51:12 GMT</pubDate>
    <dc:creator>Kurt_Bremser</dc:creator>
    <dc:date>2018-06-27T13:51:12Z</dc:date>
    <item>
      <title>select all the value from the highest value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/select-all-the-value-from-the-highest-value/m-p/473714#M121590</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a table like below (as table Have) , we&amp;nbsp;want a table (like want)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;first i have to select the highest servnum for a&amp;nbsp;cntnum (which is&amp;nbsp;6564 for&amp;nbsp;&lt;SPAN&gt;cntnum&amp;nbsp;&lt;/SPAN&gt;153787)&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;now the&amp;nbsp;cate for the highest&amp;nbsp;&lt;SPAN&gt;cntnum&amp;nbsp; is 5 ,&amp;nbsp; so in the final output we have to select all the lines where the cate is less than equal to 5 (i.e 5,4,3,2 for this case)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;NOTE: the cate 5 is repeated here for cntnum 153787 in that case we need to select the line where the&amp;nbsp;servnum is the highest&amp;nbsp; (that is we need to select the first row)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;data have&lt;/SPAN&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;cntnum&lt;/TD&gt;&lt;TD&gt;servnum&lt;/TD&gt;&lt;TD&gt;linenum&lt;/TD&gt;&lt;TD&gt;cate&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;153787&lt;/TD&gt;&lt;TD&gt;6564&lt;/TD&gt;&lt;TD&gt;6563&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;153787&lt;/TD&gt;&lt;TD&gt;6563&lt;/TD&gt;&lt;TD&gt;6390&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;153787&lt;/TD&gt;&lt;TD&gt;6562&lt;/TD&gt;&lt;TD&gt;6561&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;153787&lt;/TD&gt;&lt;TD&gt;6561&lt;/TD&gt;&lt;TD&gt;5934&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;153787&lt;/TD&gt;&lt;TD&gt;6560&lt;/TD&gt;&lt;TD&gt;6559&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;153787&lt;/TD&gt;&lt;TD&gt;6559&lt;/TD&gt;&lt;TD&gt;4532&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;153787&lt;/TD&gt;&lt;TD&gt;6558&lt;/TD&gt;&lt;TD&gt;1430&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;153787&lt;/TD&gt;&lt;TD&gt;6557&lt;/TD&gt;&lt;TD&gt;3768&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;153787&lt;/TD&gt;&lt;TD&gt;6556&lt;/TD&gt;&lt;TD&gt;6555&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;153787&lt;/TD&gt;&lt;TD&gt;6555&lt;/TD&gt;&lt;TD&gt;6554&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;153787&lt;/TD&gt;&lt;TD&gt;6554&lt;/TD&gt;&lt;TD&gt;6553&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;153787&lt;/TD&gt;&lt;TD&gt;6553&lt;/TD&gt;&lt;TD&gt;6552&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;153787&lt;/TD&gt;&lt;TD&gt;6552&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;256434&lt;/TD&gt;&lt;TD&gt;198&lt;/TD&gt;&lt;TD&gt;197&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;256434&lt;/TD&gt;&lt;TD&gt;197&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;256434&lt;/TD&gt;&lt;TD&gt;195&lt;/TD&gt;&lt;TD&gt;194&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;256434&lt;/TD&gt;&lt;TD&gt;194&lt;/TD&gt;&lt;TD&gt;193&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;256434&lt;/TD&gt;&lt;TD&gt;193&lt;/TD&gt;&lt;TD&gt;192&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;256434&lt;/TD&gt;&lt;TD&gt;192&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;data want&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;cntnum&lt;/TD&gt;&lt;TD&gt;servnum&lt;/TD&gt;&lt;TD&gt;linenum&lt;/TD&gt;&lt;TD&gt;cate&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;153787&lt;/TD&gt;&lt;TD&gt;6564&lt;/TD&gt;&lt;TD&gt;6563&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;153787&lt;/TD&gt;&lt;TD&gt;6563&lt;/TD&gt;&lt;TD&gt;6390&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;153787&lt;/TD&gt;&lt;TD&gt;6553&lt;/TD&gt;&lt;TD&gt;6552&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;153787&lt;/TD&gt;&lt;TD&gt;6552&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;256434&lt;/TD&gt;&lt;TD&gt;198&lt;/TD&gt;&lt;TD&gt;197&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;256434&lt;/TD&gt;&lt;TD&gt;197&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 27 Jun 2018 13:15:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/select-all-the-value-from-the-highest-value/m-p/473714#M121590</guid>
      <dc:creator>soham_sas</dc:creator>
      <dc:date>2018-06-27T13:15:22Z</dc:date>
    </item>
    <item>
      <title>Re: select all the value from the highest value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/select-all-the-value-from-the-highest-value/m-p/473721#M121592</link>
      <description>&lt;P&gt;Are you trying to say that you need us to write a piece of code for you that would select the record with the highest servnum for each (cntnum, cate) pair?&lt;/P&gt;</description>
      <pubDate>Wed, 27 Jun 2018 13:30:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/select-all-the-value-from-the-highest-value/m-p/473721#M121592</guid>
      <dc:creator>ybolduc</dc:creator>
      <dc:date>2018-06-27T13:30:00Z</dc:date>
    </item>
    <item>
      <title>Re: select all the value from the highest value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/select-all-the-value-from-the-highest-value/m-p/473725#M121594</link>
      <description>&lt;P&gt;yes please .. if you can tell me the logic for how to code it then also it will work &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 27 Jun 2018 13:36:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/select-all-the-value-from-the-highest-value/m-p/473725#M121594</guid>
      <dc:creator>soham_sas</dc:creator>
      <dc:date>2018-06-27T13:36:10Z</dc:date>
    </item>
    <item>
      <title>Re: select all the value from the highest value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/select-all-the-value-from-the-highest-value/m-p/473729#M121595</link>
      <description>&lt;P&gt;Let's see if I understand your task.&amp;nbsp;&amp;nbsp; Within each CNTNUM you want one record for each CATE value that is equal to or less than the CATE that corresponds to the highest observed SERVNUM in that CNTNUM.&amp;nbsp;&amp;nbsp;And the record to be chosen for each CATE is to be the one with the highest SERVNUM.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Because your data are apparently sorted by descending servnum within each cntnum group, it's relatively straightforward.&amp;nbsp; The reference value for CATE is always going to be the first record of that CNTNUM.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  input cntnum servnum linenum cate ;
datalines;
153787 6564 6563 5 
153787 6563 6390 4 
153787 6562 6561 6 
153787 6561 5934 5 
153787 6560 6559 6 
153787 6559 4532 5 
153787 6558 1430 6 
153787 6557 3768 5 
153787 6556 6555 6 
153787 6555 6554 5 
153787 6554 6553 4 
153787 6553 6552 3 
153787 6552 1 2 
256434 198 197 3 
256434 197 1 2 
256434 195 194 5 
256434 194 193 4 
256434 193 192 3 
256434 192 1 2 
run;

data want (drop=_:);
  array _found{20};
  do until (last.cntnum);
    set have;
    by cntnum descending servnum;
    if first.cntnum then _cate1=cate;
    if cate&amp;lt;=_cate1 and _found{cate}^=1 then do;
      output;
      putlog cntnum= servnum= linenum= cate=;
      _found{cate}=1;
    end;
  end;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Just make sure that the size of the array _FOUND is at least the level of the highest possible&amp;nbsp;CATE value.&amp;nbsp; Because of the sort order of records, you know that the first instance of any qualified CATE value (i.e. CATE &amp;lt;= _CATE1) is the desired record, at which point you can output the data and record that fact in the _FOUND array.&lt;/P&gt;</description>
      <pubDate>Wed, 27 Jun 2018 13:41:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/select-all-the-value-from-the-highest-value/m-p/473729#M121595</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2018-06-27T13:41:19Z</dc:date>
    </item>
    <item>
      <title>Re: select all the value from the highest value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/select-all-the-value-from-the-highest-value/m-p/473737#M121599</link>
      <description>&lt;P&gt;Retain a reference value, and output only in case the current cate is below that. To make it start at 5, initialize to 6.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile cards dlm='09'x;
input cntnum	servnum	linenum	cate;
cards;
153787	6564	6563	5
153787	6563	6390	4
153787	6562	6561	6
153787	6561	5934	5
153787	6560	6559	6
153787	6559	4532	5
153787	6558	1430	6
153787	6557	3768	5
153787	6556	6555	6
153787	6555	6554	5
153787	6554	6553	4
153787	6553	6552	3
153787	6552	1	2
256434	198	197	3
256434	197	1	2
256434	195	194	5
256434	194	193	4
256434	193	192	3
256434	192	1	2
;
run;

proc sort data=have; /* sort just to be sure */
by cntnum descending servnum;
run;

data want;
set have;
by cntnum;
retain lastcate;
if first.cntnum then lastcate = 6;
if cate &amp;lt; lastcate
then do;
  lastcate = cate;
  output;
end;
drop lastcate;
run;

proc print data=want noobs;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;(note how I put the data into a data step, so that it is easy to recreate the dataset with copy/paste and submit)&lt;/P&gt;
&lt;P&gt;The result matches your want example:&lt;/P&gt;
&lt;PRE&gt;cntnum    servnum    linenum    cate

153787      6564       6563       5 
153787      6563       6390       4 
153787      6553       6552       3 
153787      6552          1       2 
256434       198        197       3 
256434       197          1       2 
&lt;/PRE&gt;</description>
      <pubDate>Wed, 27 Jun 2018 13:51:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/select-all-the-value-from-the-highest-value/m-p/473737#M121599</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2018-06-27T13:51:12Z</dc:date>
    </item>
    <item>
      <title>Re: select all the value from the highest value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/select-all-the-value-from-the-highest-value/m-p/473742#M121601</link>
      <description>&lt;P&gt;A similar idea, but without a hard-coded maximum:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;proc sort data=have;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;by cntnum descending servnum;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;run;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;　&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;data want;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;set have;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;by cntnum;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;if first.cntnum then cutoff = cate;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;if cate &amp;lt;= cutoff then do;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp; output;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp; cutoff = cate - 1;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;end;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;retain cutoff;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;drop cutoff;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;run;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;LI-WRAPPER&gt;&lt;/LI-WRAPPER&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 27 Jun 2018 14:30:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/select-all-the-value-from-the-highest-value/m-p/473742#M121601</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2018-06-27T14:30:27Z</dc:date>
    </item>
    <item>
      <title>Re: select all the value from the highest value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/select-all-the-value-from-the-highest-value/m-p/473776#M121613</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  input cntnum servnum linenum cate ;
datalines;
153787 6564 6563 5 
153787 6563 6390 4 
153787 6562 6561 6 
153787 6561 5934 5 
153787 6560 6559 6 
153787 6559 4532 5 
153787 6558 1430 6 
153787 6557 3768 5 
153787 6556 6555 6 
153787 6555 6554 5 
153787 6554 6553 4 
153787 6553 6552 3 
153787 6552 1 2 
256434 198 197 3 
256434 197 1 2 
256434 195 194 5 
256434 194 193 4 
256434 193 192 3 
256434 192 1 2 
run;

proc sql;
create table want as
select a.*
from 
have a,(select cntnum,servnum, cate from have group by cntnum having servnum=max(servnum)) b
where (a.cntnum =b.cntnum and a.cate&amp;lt;b.cate) or (a.cntnum=b.cntnum and a.servnum=b.servnum and a.cate=b.cate)
group by a.cntnum,a.cate
having servnum=max(servnum)
order by cntnum,cate desc;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 27 Jun 2018 15:48:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/select-all-the-value-from-the-highest-value/m-p/473776#M121613</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-06-27T15:48:51Z</dc:date>
    </item>
    <item>
      <title>Re: select all the value from the highest value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/select-all-the-value-from-the-highest-value/m-p/473960#M121704</link>
      <description>&lt;P&gt;If I understood your question.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  input cntnum servnum linenum cate ;
datalines;
153787 6564 6563 5 
153787 6563 6390 4 
153787 6562 6561 6 
153787 6561 5934 5 
153787 6560 6559 6 
153787 6559 4532 5 
153787 6558 1430 6 
153787 6557 3768 5 
153787 6556 6555 6 
153787 6555 6554 5 
153787 6554 6553 4 
153787 6553 6552 3 
153787 6552 1 2 
256434 198 197 3 
256434 197 1 2 
256434 195 194 5 
256434 194 193 4 
256434 193 192 3 
256434 192 1 2 
run;
proc sort data=have out=temp ;
by cntnum servnum cate;
run;
data temp1;
 set temp;
 by cntnum ;
 if last.cntnum ;
 keep cntnum cate;
run;

data temp2;
 merge temp temp1(rename=(cate=_cate));
 by cntnum;
 if cate le _cate;
 drop _cate;
run;

proc sort data=temp2 out=temp3 ;
by cntnum  cate;
run;
data want;
 set temp3;
 by cntnum cate;
 if last.cate ;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 28 Jun 2018 03:17:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/select-all-the-value-from-the-highest-value/m-p/473960#M121704</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2018-06-28T03:17:03Z</dc:date>
    </item>
  </channel>
</rss>

