<?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: max group per ID in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/max-group-per-ID/m-p/651993#M195676</link>
    <description>&lt;P&gt;You will need a "having" clause:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
create table want as
  select
    id,
    time_group,
    order,
    status
  from have
  group by id, time_group
  having order = max(order)
;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Sat, 30 May 2020 17:30:56 GMT</pubDate>
    <dc:creator>Kurt_Bremser</dc:creator>
    <dc:date>2020-05-30T17:30:56Z</dc:date>
    <item>
      <title>max group per ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/max-group-per-ID/m-p/651992#M195675</link>
      <description>&lt;P&gt;I have the following dataset:&lt;/P&gt;
&lt;TABLE width="229"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="35"&gt;ID&lt;/TD&gt;
&lt;TD width="40"&gt;order&lt;/TD&gt;
&lt;TD width="61"&gt;status&lt;/TD&gt;
&lt;TD width="93"&gt;time_group&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1234&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;increase&lt;/TD&gt;
&lt;TD&gt;0 to 6 hours&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1234&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;increase&lt;/TD&gt;
&lt;TD&gt;12 to 24 hours&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1234&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;decrease&lt;/TD&gt;
&lt;TD&gt;24 to 48 hours&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1234&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;increase&lt;/TD&gt;
&lt;TD&gt;24 to 48 hours&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2342&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;increase&lt;/TD&gt;
&lt;TD&gt;0 to 6 hours&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2342&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;decrease&lt;/TD&gt;
&lt;TD&gt;12 to 24 hours&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2342&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;increase&lt;/TD&gt;
&lt;TD&gt;12 to 24 hours&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2342&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;increase&lt;/TD&gt;
&lt;TD&gt;24 to 48 hours&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2342&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;decrease&lt;/TD&gt;
&lt;TD&gt;24 to 48 hours&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;What I would like to do is extract max order ID and status by time group. For example, in ID 2342, there are two 24 to 48 hours but with differing status (i.e. increase and decrease). What I would like to do is keep the max order number for that. So keep decrease for group 24-48 hours.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Something like this below:&lt;/P&gt;
&lt;TABLE width="229"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="35"&gt;ID&lt;/TD&gt;
&lt;TD width="40"&gt;order&lt;/TD&gt;
&lt;TD width="61"&gt;status&lt;/TD&gt;
&lt;TD width="93"&gt;time_group&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1234&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;increase&lt;/TD&gt;
&lt;TD&gt;0 to 6 hours&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1234&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;increase&lt;/TD&gt;
&lt;TD&gt;12 to 24 hours&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1234&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;increase&lt;/TD&gt;
&lt;TD&gt;24 to 48 hours&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2342&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;increase&lt;/TD&gt;
&lt;TD&gt;0 to 6 hours&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2342&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;increase&lt;/TD&gt;
&lt;TD&gt;12 to 24 hours&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2342&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;decrease&lt;/TD&gt;
&lt;TD&gt;24 to 48 hours&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I did the following&lt;/P&gt;
&lt;P&gt;proc sql;&lt;/P&gt;
&lt;P&gt;create table want as&lt;/P&gt;
&lt;P&gt;select distinct ID, timegroup, status, max(order) as ID&lt;/P&gt;
&lt;P&gt;from have&amp;nbsp;&lt;/P&gt;
&lt;P&gt;group by ID, timegroup, status;quit;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;not getting what i want&lt;/P&gt;</description>
      <pubDate>Sat, 30 May 2020 17:14:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/max-group-per-ID/m-p/651992#M195675</guid>
      <dc:creator>monday89</dc:creator>
      <dc:date>2020-05-30T17:14:55Z</dc:date>
    </item>
    <item>
      <title>Re: max group per ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/max-group-per-ID/m-p/651993#M195676</link>
      <description>&lt;P&gt;You will need a "having" clause:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
create table want as
  select
    id,
    time_group,
    order,
    status
  from have
  group by id, time_group
  having order = max(order)
;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 30 May 2020 17:30:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/max-group-per-ID/m-p/651993#M195676</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2020-05-30T17:30:56Z</dc:date>
    </item>
    <item>
      <title>Re: max group per ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/max-group-per-ID/m-p/651994#M195677</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have;
input (ID	order	status) (:$32.) time_group $32.;
cards;
1234	1	increase	0 to 6 hours
1234	2	increase	12 to 24 hours
1234	3	decrease	24 to 48 hours
1234	4	increase	24 to 48 hours
2342	1	increase	0 to 6 hours
2342	2	decrease	12 to 24 hours
2342	3	increase	12 to 24 hours
2342	4	increase	24 to 48 hours
2342	5	decrease	24 to 48 hours
;

data want;
 set have;
 by id time_group notsorted;
 if last.time_group;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 30 May 2020 17:41:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/max-group-per-ID/m-p/651994#M195677</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-05-30T17:41:21Z</dc:date>
    </item>
    <item>
      <title>Re: max group per ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/max-group-per-ID/m-p/652052#M195716</link>
      <description>&lt;P&gt;And if you had a record with the time of 6 to 12? That would sort as the max, wouldn't it?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You'll need to recode that time variable to a variable that will order correctly.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Is your grouping by order or by time_group? That isn't clear.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 31 May 2020 02:59:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/max-group-per-ID/m-p/652052#M195716</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2020-05-31T02:59:48Z</dc:date>
    </item>
  </channel>
</rss>

