<?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: Use proc sql to find min value in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Use-proc-sql-to-find-min-value/m-p/181587#M265214</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I don't know if this resolve your whole requirement, but I would use the price &amp;gt; 0 in the sub-query where-clause instead.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 21 Feb 2014 10:51:20 GMT</pubDate>
    <dc:creator>LinusH</dc:creator>
    <dc:date>2014-02-21T10:51:20Z</dc:date>
    <item>
      <title>Use proc sql to find min value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Use-proc-sql-to-find-min-value/m-p/181586#M265213</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello everyone,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a time series data with sale information and want to find non-zero min price in previous 5 minutes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Input&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Time&amp;nbsp; Price&lt;/P&gt;&lt;P&gt;9:00&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&lt;/P&gt;&lt;P&gt;9:05&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&lt;/P&gt;&lt;P&gt;9:06&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;9:07&amp;nbsp;&amp;nbsp;&amp;nbsp; 13&lt;/P&gt;&lt;P&gt;9:09&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;9:12&amp;nbsp;&amp;nbsp;&amp;nbsp; 15&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Desired output&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Time&amp;nbsp; Price&amp;nbsp; Lag_Min_Price&lt;/P&gt;&lt;P&gt;9:00&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;/P&gt;&lt;P&gt;9:05&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&lt;/P&gt;&lt;P&gt;9:06&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&lt;/P&gt;&lt;P&gt;9:07&amp;nbsp;&amp;nbsp;&amp;nbsp; 13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&lt;/P&gt;&lt;P&gt;9:09&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&lt;/P&gt;&lt;P&gt;9:12&amp;nbsp;&amp;nbsp;&amp;nbsp; 15&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 13&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I try proc sql, but there is something wrong. The problem might be min(price &amp;gt; 0), but I don't know how to correct it. Does anyone have solution? Thank you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; create table want as&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select A.*, &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (select min(price &amp;gt; 0) &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from have as B &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where A.time-5&amp;lt;=B.time&amp;lt;=A.time-1) as Lag_Min_Price&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from have as A;&lt;BR /&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best,&lt;/P&gt;&lt;P&gt;Tammy&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Feb 2014 10:28:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Use-proc-sql-to-find-min-value/m-p/181586#M265213</guid>
      <dc:creator>TammyGoSAS</dc:creator>
      <dc:date>2014-02-21T10:28:26Z</dc:date>
    </item>
    <item>
      <title>Re: Use proc sql to find min value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Use-proc-sql-to-find-min-value/m-p/181587#M265214</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I don't know if this resolve your whole requirement, but I would use the price &amp;gt; 0 in the sub-query where-clause instead.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Feb 2014 10:51:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Use-proc-sql-to-find-min-value/m-p/181587#M265214</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2014-02-21T10:51:20Z</dc:date>
    </item>
    <item>
      <title>Re: Use proc sql to find min value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Use-proc-sql-to-find-min-value/m-p/181588#M265215</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I've done with a datastep and a sort before.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort data=price; by time;run; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want (keep=price time min_price);&lt;/P&gt;&lt;P&gt;&amp;nbsp; set price;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by time;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; _1=time-lag1(time);&lt;/P&gt;&lt;P&gt;&amp;nbsp; _2=time-lag2(time);&lt;/P&gt;&lt;P&gt;&amp;nbsp; _3=time-lag3(time);&lt;/P&gt;&lt;P&gt;&amp;nbsp; _4=time-lag4(time);&lt;/P&gt;&lt;P&gt;&amp;nbsp; _5=time-lag5(time);&lt;/P&gt;&lt;P&gt;&amp;nbsp; p_1=lag1(price);&lt;/P&gt;&lt;P&gt;&amp;nbsp; p_2=lag2(price);&lt;/P&gt;&lt;P&gt;&amp;nbsp; p_3=lag3(price);&lt;/P&gt;&lt;P&gt;&amp;nbsp; p_4=lag4(price);&lt;/P&gt;&lt;P&gt;&amp;nbsp; p_5=lag5(price);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if _1=60 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if p_1 ne 0 then price1=p_1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if _1=120 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if p_1 ne 0 then price2=p_1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if _1=180 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if p_1 ne 0 then price3=p_1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if _1=240 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if p_1 ne 0 then price4=p_1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if _1=300 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if p_1 ne 0 then price5=p_1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if _2=120 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if p_2 ne 0 then price2=p_2;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if _2=180 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if p_2 ne 0 then price3=p_2;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if _2=240 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if p_2 ne 0 then price4=p_2;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if _2=300 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if p_2 ne 0 then price5=p_2;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; if _3=180 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if p_3 ne 0 then price3=p_3;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if _3=240 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if p_3 ne 0 then price4=p_3;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if _3=300 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if p_3 ne 0 then price5=p_3;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; if _4=240 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if p_4 ne 0 then price4=p_4;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if _4=300 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if p_4 ne 0 then price5=p_4;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; if _5=300 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if p_5 ne 0 then price5=p_5;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; min_price=min(of price1-price5);&lt;/P&gt;&lt;P&gt;&amp;nbsp; run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Feb 2014 15:22:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Use-proc-sql-to-find-min-value/m-p/181588#M265215</guid>
      <dc:creator>Barnipaz</dc:creator>
      <dc:date>2014-02-21T15:22:50Z</dc:date>
    </item>
    <item>
      <title>Re: Use proc sql to find min value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Use-proc-sql-to-find-min-value/m-p/181589#M265216</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Try this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data have;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;input Time :time5.&amp;nbsp; Price;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;format time time5.;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;datalines;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;9:00&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;9:05&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;9:06&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;9:07&amp;nbsp;&amp;nbsp;&amp;nbsp; 13&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;9:09&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;9:12&amp;nbsp;&amp;nbsp;&amp;nbsp; 15&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;proc sql;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;create table want as&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;select A.*, &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; (select min(price) &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp; from have&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp; where price &amp;gt; 0 and time between A.time-300 and A.time) as Lag_Min_Price&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;from have as A;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;select * from want;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;quit;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PG&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Feb 2014 15:26:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Use-proc-sql-to-find-min-value/m-p/181589#M265216</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2014-02-21T15:26:05Z</dc:date>
    </item>
    <item>
      <title>Re: Use proc sql to find min value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Use-proc-sql-to-find-min-value/m-p/181590#M265217</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you so much, PG. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 22 Feb 2014 05:00:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Use-proc-sql-to-find-min-value/m-p/181590#M265217</guid>
      <dc:creator>TammyGoSAS</dc:creator>
      <dc:date>2014-02-22T05:00:12Z</dc:date>
    </item>
  </channel>
</rss>

