<?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: pick the minimum and keep only that value (proc sql) in New SAS User</title>
    <link>https://communities.sas.com/t5/New-SAS-User/pick-the-minimum-and-keep-only-that-value-proc-sql/m-p/610377#M18089</link>
    <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/12447"&gt;@Patrick&lt;/a&gt; , seems like the below code is working I tested the same per the data, I believe for the record id 3 we should have only one row of -300 as it is the minimum values under ID 3&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID Date:ddmmyy10. Points;
cards;
1 1/01/2019  0
2 1/01/2019  -200
3 1/01/2019  0
3 1/01/2019  0
3 1/01/2019  0
3 1/01/2019  0
3 1/01/2019  0
3 1/01/2019  0
3 1/01/2019  0
3 1/01/2019  -100
3 1/01/2019  -100
3 1/01/2019  -100
3 1/01/2019  -100
3 1/01/2019  -100
3 1/01/2019  -100
3 1/01/2019  -100
3 1/01/2019  -300
3 1/01/2019  -100
3 1/01/2019  -100
3 1/01/2019  -100
4 1/01/2019  -200
5 1/01/2019  0
5 1/01/2019  -200
5 1/01/2019  -100
;

proc sql;
create table want as select id,date,min(points) as points
from have group by id,date;
quit;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 358px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/34558i5813CA74A51A1A6B/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
    <pubDate>Mon, 09 Dec 2019 06:11:04 GMT</pubDate>
    <dc:creator>Jagadishkatam</dc:creator>
    <dc:date>2019-12-09T06:11:04Z</dc:date>
    <item>
      <title>pick the minimum and keep only that value (proc sql)</title>
      <link>https://communities.sas.com/t5/New-SAS-User/pick-the-minimum-and-keep-only-that-value-proc-sql/m-p/610371#M18086</link>
      <description>&lt;P&gt;I have the current dataset in SAS:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Date&lt;/TD&gt;&lt;TD&gt;Points&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;-200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;-100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;-100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;-100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;-100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;-100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;-100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;-100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;-300&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;-100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;-100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;-100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;-200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;-200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;-100&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to create a new dataset with only one entry for each ID, and for this ID I want to choose the minimum value for points for each ID. My desired result looks like this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Date&lt;/TD&gt;&lt;TD&gt;Points&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;-200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;-300&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;-200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;1/01/2019&lt;/TD&gt;&lt;TD&gt;-200&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is there a way to using proc sql in SAS?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;</description>
      <pubDate>Mon, 09 Dec 2019 05:22:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/pick-the-minimum-and-keep-only-that-value-proc-sql/m-p/610371#M18086</guid>
      <dc:creator>sasprogramming</dc:creator>
      <dc:date>2019-12-09T05:22:36Z</dc:date>
    </item>
    <item>
      <title>Re: pick the minimum and keep only that value (proc sql)</title>
      <link>https://communities.sas.com/t5/New-SAS-User/pick-the-minimum-and-keep-only-that-value-proc-sql/m-p/610373#M18087</link>
      <description>&lt;P&gt;Please try&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
create table want as select id,date,min(points) as points
from have group by id,date;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 09 Dec 2019 05:57:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/pick-the-minimum-and-keep-only-that-value-proc-sql/m-p/610373#M18087</guid>
      <dc:creator>Jagadishkatam</dc:creator>
      <dc:date>2019-12-09T05:57:26Z</dc:date>
    </item>
    <item>
      <title>Re: pick the minimum and keep only that value (proc sql)</title>
      <link>https://communities.sas.com/t5/New-SAS-User/pick-the-minimum-and-keep-only-that-value-proc-sql/m-p/610375#M18088</link>
      <description>&lt;P&gt;Below two options (code not tested).&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;/* option 1 */
proc sql;
  create table want as 
  select id,date,points
  from have 
  group by id
  having min(points)=points
  ;
quit;

/* option 2 */
proc sort data=have;
  by id points;
run;

data want;
  set have;
  by id;
  if first.id;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;CODE class=" language-sas"&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/12151"&gt;@Jagadishkatam&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I believe the SQL you've posted won't return the desired result.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 09 Dec 2019 06:08:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/pick-the-minimum-and-keep-only-that-value-proc-sql/m-p/610375#M18088</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2019-12-09T06:08:32Z</dc:date>
    </item>
    <item>
      <title>Re: pick the minimum and keep only that value (proc sql)</title>
      <link>https://communities.sas.com/t5/New-SAS-User/pick-the-minimum-and-keep-only-that-value-proc-sql/m-p/610377#M18089</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/12447"&gt;@Patrick&lt;/a&gt; , seems like the below code is working I tested the same per the data, I believe for the record id 3 we should have only one row of -300 as it is the minimum values under ID 3&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID Date:ddmmyy10. Points;
cards;
1 1/01/2019  0
2 1/01/2019  -200
3 1/01/2019  0
3 1/01/2019  0
3 1/01/2019  0
3 1/01/2019  0
3 1/01/2019  0
3 1/01/2019  0
3 1/01/2019  0
3 1/01/2019  -100
3 1/01/2019  -100
3 1/01/2019  -100
3 1/01/2019  -100
3 1/01/2019  -100
3 1/01/2019  -100
3 1/01/2019  -100
3 1/01/2019  -300
3 1/01/2019  -100
3 1/01/2019  -100
3 1/01/2019  -100
4 1/01/2019  -200
5 1/01/2019  0
5 1/01/2019  -200
5 1/01/2019  -100
;

proc sql;
create table want as select id,date,min(points) as points
from have group by id,date;
quit;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 358px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/34558i5813CA74A51A1A6B/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 09 Dec 2019 06:11:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/pick-the-minimum-and-keep-only-that-value-proc-sql/m-p/610377#M18089</guid>
      <dc:creator>Jagadishkatam</dc:creator>
      <dc:date>2019-12-09T06:11:04Z</dc:date>
    </item>
    <item>
      <title>Re: pick the minimum and keep only that value (proc sql)</title>
      <link>https://communities.sas.com/t5/New-SAS-User/pick-the-minimum-and-keep-only-that-value-proc-sql/m-p/610380#M18090</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/12151"&gt;@Jagadishkatam&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The issue with your code doesn't surface with the sample data provided. Run with below and you'll see what I'm talking about.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  input ID Date:ddmmyy10. Points;
  format date date9.;
  cards;
3 1/01/2019  0
3 2/01/2019  -300
3 1/01/2019  -100
3 3/01/2019  -200
;

proc sql;
/*  create table want as */
    select id,date,min(points) as points
    from have 
    group by id,date
    ;
quit;

proc sql;
/*  create table want as */
  select id,date,points
  from have 
  group by id
  having min(points)=points
  ;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 09 Dec 2019 06:18:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/pick-the-minimum-and-keep-only-that-value-proc-sql/m-p/610380#M18090</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2019-12-09T06:18:26Z</dc:date>
    </item>
    <item>
      <title>Re: pick the minimum and keep only that value (proc sql)</title>
      <link>https://communities.sas.com/t5/New-SAS-User/pick-the-minimum-and-keep-only-that-value-proc-sql/m-p/610382#M18091</link>
      <description>I agree with you &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/12447"&gt;@Patrick&lt;/a&gt;</description>
      <pubDate>Mon, 09 Dec 2019 06:22:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/pick-the-minimum-and-keep-only-that-value-proc-sql/m-p/610382#M18091</guid>
      <dc:creator>Jagadishkatam</dc:creator>
      <dc:date>2019-12-09T06:22:04Z</dc:date>
    </item>
    <item>
      <title>Re: pick the minimum and keep only that value (proc sql)</title>
      <link>https://communities.sas.com/t5/New-SAS-User/pick-the-minimum-and-keep-only-that-value-proc-sql/m-p/610636#M18132</link>
      <description>Why force SQL to do the job, when SAS has already created a tool for this purpose?&lt;BR /&gt;&lt;BR /&gt;proc summary data=have nway;&lt;BR /&gt;var points;&lt;BR /&gt;class id date;&lt;BR /&gt;output out=want (drop=_type_ _freq_) min= ;&lt;BR /&gt;run;</description>
      <pubDate>Tue, 10 Dec 2019 07:51:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/pick-the-minimum-and-keep-only-that-value-proc-sql/m-p/610636#M18132</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2019-12-10T07:51:40Z</dc:date>
    </item>
  </channel>
</rss>

