<?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 minimum value and corresponding amount in proc sql in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/get-minimum-value-with-corresponding-amount-grouped-by-id/m-p/511575#M137703</link>
    <description>This is a personal pet annoyance, but I don't respond to people who address their question to 'guys' - I missed it on the first read. Sorry, I cannot help you since I'm not a guy. I usually don't even bother to address it and ignore those question entirely, but since I already responded once I'll mention it here and walk away. Good Luck.</description>
    <pubDate>Fri, 09 Nov 2018 01:34:26 GMT</pubDate>
    <dc:creator>Reeza</dc:creator>
    <dc:date>2018-11-09T01:34:26Z</dc:date>
    <item>
      <title>get minimum value with corresponding amount grouped by id</title>
      <link>https://communities.sas.com/t5/SAS-Programming/get-minimum-value-with-corresponding-amount-grouped-by-id/m-p/511564#M137687</link>
      <description>&lt;P&gt;Hi Guys,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to get minimum age for each age variable within the group of id and their corresponding amount. How can I&amp;nbsp;achieve&amp;nbsp;this using proc sql or proc sort/data step?&lt;/P&gt;&lt;P&gt;My below proc sql is getting the minimum age for the each group but don't know how to get the corresponding amount.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data test;&lt;BR /&gt;input id cc_age cc_amt PL_age PL_amt Mort_age Mort_amt bank_age bank_amt;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;001 2 1000 . . 8 1600 11 300&lt;/P&gt;&lt;P&gt;001 12 1000 6 3000 . . 6 1300&lt;/P&gt;&lt;P&gt;001 . . 3 4000 . . 4 2430&lt;/P&gt;&lt;P&gt;001 7 900 . . 2 2999 . .&lt;/P&gt;&lt;P&gt;002 5 4000 9 5000 11 2000 . .&lt;/P&gt;&lt;P&gt;002 . . 4 1500 . . 8 990&lt;/P&gt;&lt;P&gt;002 9 900 . . 7 890 10 2600&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;proc sql;&lt;BR /&gt;create table test1 as select id, min(cc_age) as min_cc_age, min(pl_age) as min_pl_age, min(mort_age) as min_mort_age, min(bank_age) as min_bank_age&lt;BR /&gt;from test&lt;BR /&gt;group by id;&lt;BR /&gt;quit;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Current Result:&lt;BR /&gt;id min_cc_age min_pl_age min_mort_age min_bank_age&lt;BR /&gt;1&amp;nbsp; 2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4&lt;BR /&gt;2&amp;nbsp; 5&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;7&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 8&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Expected Result:&lt;/P&gt;&lt;P&gt;id min_cc_age&amp;nbsp; &amp;nbsp; cc_amt&amp;nbsp; &amp;nbsp; &amp;nbsp; min_pl_age&amp;nbsp; &amp;nbsp;pl_amt&amp;nbsp; &amp;nbsp; min_mort_age&amp;nbsp; &amp;nbsp; mort_amt&amp;nbsp; &amp;nbsp; min_bank_age&amp;nbsp; &amp;nbsp; &amp;nbsp;bank_amt&lt;BR /&gt;1&amp;nbsp; 2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1000&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4000&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2999&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2430&lt;BR /&gt;2&amp;nbsp; 5&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4000&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1500&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;7&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 890&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 8&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;990&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance for all your help!&lt;/P&gt;</description>
      <pubDate>Fri, 09 Nov 2018 00:01:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/get-minimum-value-with-corresponding-amount-grouped-by-id/m-p/511564#M137687</guid>
      <dc:creator>Suja</dc:creator>
      <dc:date>2018-11-09T00:01:47Z</dc:date>
    </item>
    <item>
      <title>select minimum value and corresponding amount in proc sql</title>
      <link>https://communities.sas.com/t5/SAS-Programming/get-minimum-value-with-corresponding-amount-grouped-by-id/m-p/511565#M137699</link>
      <description>&lt;P&gt;Hi Guys,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to get the minimum&amp;nbsp;value for each variable within the group and also get the corresponding amount. How can I achieve this using proc sql or proc sort/data step?&lt;/P&gt;&lt;P&gt;My below code is getting the minimum age for the each group but don't know how to get the corresponding amount.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;data test;&lt;BR /&gt;input id cc_age cc_amt PL_age PL_amt Mort_age Mort_amt bank_age bank_amt;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;001 2 1000 . . 8 1600 11 300&lt;/P&gt;&lt;P&gt;001 12 1000 6 3000 . . 6 1300&lt;/P&gt;&lt;P&gt;001 . . 3 4000 . . 4 2430&lt;/P&gt;&lt;P&gt;001 7 900 . . 2 2999 . .&lt;/P&gt;&lt;P&gt;002 5 4000 9 5000 11 2000 . .&lt;/P&gt;&lt;P&gt;002 . . 4 1500 . . 8 990&lt;/P&gt;&lt;P&gt;002 2 900 . . 7 890 10 2600&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;proc sql;&lt;BR /&gt;create table test1 as select id, min(cc_age) as min_cc_age, min(pl_age) as min_pl_age, min(mort_age) as min_mort_age, min(bank_age) as min_bank_age&lt;BR /&gt;from test&lt;BR /&gt;group by id;&lt;BR /&gt;quit;&lt;/P&gt;&lt;P&gt;Current Result:&lt;BR /&gt;id min_cc_age min_pl_age min_mort_age min_bank_age&lt;BR /&gt;1 2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4&lt;BR /&gt;2 5&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 7&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 8&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Expected Result:&lt;/P&gt;&lt;P&gt;id min_cc_age cc_amt&amp;nbsp; min_pl_age pl_amt&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; min_mort_age&amp;nbsp; &amp;nbsp;mort_amt&amp;nbsp; &amp;nbsp; min_bank_age&amp;nbsp; &amp;nbsp; bank_amt&lt;BR /&gt;1&amp;nbsp; 2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1000&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4000&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2999&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2430&lt;BR /&gt;2 5&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4000&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1500&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 7&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 890&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;8&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;990&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Really appreciate all your help. Thanks in advance!&lt;/P&gt;</description>
      <pubDate>Fri, 09 Nov 2018 00:08:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/get-minimum-value-with-corresponding-amount-grouped-by-id/m-p/511565#M137699</guid>
      <dc:creator>Suja</dc:creator>
      <dc:date>2018-11-09T00:08:45Z</dc:date>
    </item>
    <item>
      <title>Re: select minimum value and corresponding amount in proc sql</title>
      <link>https://communities.sas.com/t5/SAS-Programming/get-minimum-value-with-corresponding-amount-grouped-by-id/m-p/511567#M137700</link>
      <description>You’d be better if transposing this so you had three columns, age, amount and type where type is now your differentiator. Then you can use PROC SUMMARY with MINID.</description>
      <pubDate>Fri, 09 Nov 2018 00:52:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/get-minimum-value-with-corresponding-amount-grouped-by-id/m-p/511567#M137700</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-11-09T00:52:20Z</dc:date>
    </item>
    <item>
      <title>Re: select minimum value and corresponding amount in proc sql</title>
      <link>https://communities.sas.com/t5/SAS-Programming/get-minimum-value-with-corresponding-amount-grouped-by-id/m-p/511569#M137701</link>
      <description>&lt;P&gt;Hi Reeza,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for your quick response. Could you please provide an example?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;</description>
      <pubDate>Fri, 09 Nov 2018 01:12:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/get-minimum-value-with-corresponding-amount-grouped-by-id/m-p/511569#M137701</guid>
      <dc:creator>Suja</dc:creator>
      <dc:date>2018-11-09T01:12:43Z</dc:date>
    </item>
    <item>
      <title>Re: select minimum value and corresponding amount in proc sql</title>
      <link>https://communities.sas.com/t5/SAS-Programming/get-minimum-value-with-corresponding-amount-grouped-by-id/m-p/511575#M137703</link>
      <description>This is a personal pet annoyance, but I don't respond to people who address their question to 'guys' - I missed it on the first read. Sorry, I cannot help you since I'm not a guy. I usually don't even bother to address it and ignore those question entirely, but since I already responded once I'll mention it here and walk away. Good Luck.</description>
      <pubDate>Fri, 09 Nov 2018 01:34:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/get-minimum-value-with-corresponding-amount-grouped-by-id/m-p/511575#M137703</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-11-09T01:34:26Z</dc:date>
    </item>
    <item>
      <title>Re: select minimum value and corresponding amount in proc sql</title>
      <link>https://communities.sas.com/t5/SAS-Programming/get-minimum-value-with-corresponding-amount-grouped-by-id/m-p/511576#M137704</link>
      <description>&lt;P&gt;+&lt;/P&gt;
&lt;P&gt;I personally have noticed besides the address of "hi guys", you lack etiquette in terms of not acknowledging answers, not marking them, very biased responses in several other threads and beyond. It gives the impression, getting answer is some kinda right than a humble privilege. Although it's my opinion, I'm entitled to it and I care the least whomsoever disagrees.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 09 Nov 2018 01:45:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/get-minimum-value-with-corresponding-amount-grouped-by-id/m-p/511576#M137704</guid>
      <dc:creator>Andygray</dc:creator>
      <dc:date>2018-11-09T01:45:49Z</dc:date>
    </item>
    <item>
      <title>Re: select minimum value and corresponding amount in proc sql</title>
      <link>https://communities.sas.com/t5/SAS-Programming/get-minimum-value-with-corresponding-amount-grouped-by-id/m-p/511594#M137705</link>
      <description>&lt;P&gt;Hello Suja,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;i found that there is some contradiction in your request and excepted output.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you want minimum value by each id group. you can use proc means.&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data test;
input id cc_age cc_amt PL_age PL_amt Mort_age Mort_amt bank_age bank_amt;
cards;
001 2 1000 . . 8 1600 11 300
001 12 1000 6 3000 . . 6 1300
001 . . 3 4000 . . 4 2430
001 7 900 . . 2 2999 . .
002 5 4000 9 5000 11 2000 . .
002 . . 4 1500 . . 8 990
002 2 900 . . 7 890 10 2600
;
run;

proc means data=test min maxdec=0;
class id;
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;you can use output options to create output data set, if want to include missing observation on calculation . kindly use missing options .&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks....&lt;/P&gt;</description>
      <pubDate>Fri, 09 Nov 2018 03:45:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/get-minimum-value-with-corresponding-amount-grouped-by-id/m-p/511594#M137705</guid>
      <dc:creator>singhsahab</dc:creator>
      <dc:date>2018-11-09T03:45:44Z</dc:date>
    </item>
    <item>
      <title>Re: select minimum value and corresponding amount in proc sql</title>
      <link>https://communities.sas.com/t5/SAS-Programming/get-minimum-value-with-corresponding-amount-grouped-by-id/m-p/511712#M137729</link>
      <description>&lt;PRE&gt;data test;
input id cc_age cc_amt PL_age PL_amt Mort_age Mort_amt 
      bank_age bank_amt;
cards;
001 2 1000 . . 8 1600 11 300
001 12 1000 6 3000 . . 6 1300
001 . . 3 4000 . . 4 2430
001 7 900 . . 2 2999 . .
002 5 4000 9 5000 11 2000 . .
002 . . 4 1500 . . 8 990
002 9 900 . . 7 890 10 2600
;
run;

data trans;
   set test;
   length Type $ 5;
   type='CC'; age=cc_age; amt=cc_amt;output;
   type='PL'; age=PL_age; amt=PL_amt;output;
   type='MORT'; age=MORT_age; amt=MORT_amt;output;
   type='BANK'; age=BANK_age; amt=BANK_amt;output;
   keep id type age amt;
run;

/* report for people to read*/
proc tabulate data=trans;
  class id type;
  var age amt;
  table id,
        type=''*(Age Amt)*min=*f=best5.
        /misstext=' ';
run;
/* data set for further manipulation*/
proc summary data=trans nway;
   class id type;
   var age amt;
   output out=want (drop= _:) min=;
run;&lt;/PRE&gt;</description>
      <pubDate>Fri, 09 Nov 2018 15:27:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/get-minimum-value-with-corresponding-amount-grouped-by-id/m-p/511712#M137729</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2018-11-09T15:27:28Z</dc:date>
    </item>
  </channel>
</rss>

