<?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 How can I get what I want in one step, proc sql; in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-can-I-get-what-I-want-in-one-step-proc-sql/m-p/126114#M25727</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you in advance!&lt;/P&gt;&lt;P&gt;My code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;BR /&gt;input id word $6.;&lt;BR /&gt;cards;&lt;BR /&gt;1 Butter&lt;BR /&gt;1 Butter&lt;BR /&gt;1 Arm&lt;BR /&gt;2 Pole&lt;BR /&gt;2 Pole&lt;BR /&gt;2 Arm&lt;BR /&gt;2 Train&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;proc sql;&lt;BR /&gt;&amp;nbsp; create table t1 as &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select id, count(id) as n1&lt;BR /&gt;&amp;nbsp;&amp;nbsp; from have&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; group by id;&lt;BR /&gt;&amp;nbsp; create table t2 as &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select id, count (id),word as n2 from&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; have group by id,word;&lt;BR /&gt;&amp;nbsp; create table t3 as&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select id,count(id) as n3 from t2&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; group by id;&lt;BR /&gt;&amp;nbsp; select t1.id,n1,n3 from t1,t3&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; where t1.id=t3.id;&lt;BR /&gt; quit;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n3&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&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; 2&lt;/P&gt;&lt;P&gt;&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; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 24 May 2012 19:53:40 GMT</pubDate>
    <dc:creator>HG</dc:creator>
    <dc:date>2012-05-24T19:53:40Z</dc:date>
    <item>
      <title>How can I get what I want in one step, proc sql;</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-can-I-get-what-I-want-in-one-step-proc-sql/m-p/126114#M25727</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you in advance!&lt;/P&gt;&lt;P&gt;My code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;BR /&gt;input id word $6.;&lt;BR /&gt;cards;&lt;BR /&gt;1 Butter&lt;BR /&gt;1 Butter&lt;BR /&gt;1 Arm&lt;BR /&gt;2 Pole&lt;BR /&gt;2 Pole&lt;BR /&gt;2 Arm&lt;BR /&gt;2 Train&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;proc sql;&lt;BR /&gt;&amp;nbsp; create table t1 as &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select id, count(id) as n1&lt;BR /&gt;&amp;nbsp;&amp;nbsp; from have&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; group by id;&lt;BR /&gt;&amp;nbsp; create table t2 as &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select id, count (id),word as n2 from&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; have group by id,word;&lt;BR /&gt;&amp;nbsp; create table t3 as&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select id,count(id) as n3 from t2&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; group by id;&lt;BR /&gt;&amp;nbsp; select t1.id,n1,n3 from t1,t3&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; where t1.id=t3.id;&lt;BR /&gt; quit;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n3&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&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; 2&lt;/P&gt;&lt;P&gt;&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; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 24 May 2012 19:53:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-can-I-get-what-I-want-in-one-step-proc-sql/m-p/126114#M25727</guid>
      <dc:creator>HG</dc:creator>
      <dc:date>2012-05-24T19:53:40Z</dc:date>
    </item>
    <item>
      <title>Re: How can I get what I want in one step, proc sql;</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-can-I-get-what-I-want-in-one-step-proc-sql/m-p/126115#M25728</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Check table t2, I don't think it is what you expected... anyway, you seem to want for each ID, the total number of words and the number of distinct words. You can indeed get that in one SQL step :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;select id, count(word) as totalWords, count(distinct word) as distinctWords&lt;/P&gt;&lt;P&gt;from have&lt;/P&gt;&lt;P&gt;group by id; &lt;BR /&gt; &lt;/P&gt;&lt;P&gt;PG&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 24 May 2012 20:39:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-can-I-get-what-I-want-in-one-step-proc-sql/m-p/126115#M25728</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2012-05-24T20:39:03Z</dc:date>
    </item>
    <item>
      <title>Re: How can I get what I want in one step, proc sql;</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-can-I-get-what-I-want-in-one-step-proc-sql/m-p/126116#M25729</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Nice! I've never seen the "count(distinct word)" syntax before!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 24 May 2012 20:45:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-can-I-get-what-I-want-in-one-step-proc-sql/m-p/126116#M25729</guid>
      <dc:creator>JasonDiVirgilio</dc:creator>
      <dc:date>2012-05-24T20:45:04Z</dc:date>
    </item>
    <item>
      <title>Re: How can I get what I want in one step, proc sql;</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-can-I-get-what-I-want-in-one-step-proc-sql/m-p/126117#M25730</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Of course the following one-step data step approach is not as robust as PG's SQL solution, as it requires same word cluster together within the same id:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; do until (last.word);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by id word notsorted;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if first.id then call missing(n1,n2);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n1+1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n2+1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if last.id then output;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Haikuo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 24 May 2012 21:27:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-can-I-get-what-I-want-in-one-step-proc-sql/m-p/126117#M25730</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-05-24T21:27:37Z</dc:date>
    </item>
    <item>
      <title>Re: How can I get what I want in one step, proc sql;</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-can-I-get-what-I-want-in-one-step-proc-sql/m-p/126118#M25731</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Haikuo&lt;/P&gt;&lt;P&gt;is almost at the optimal solution&lt;/P&gt;&lt;P&gt;Perhaps this might work for ordered data&lt;/P&gt;&lt;P&gt;Data want ;&lt;/P&gt;&lt;P&gt; N1=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; DO N2=1 by 1 UNTIL( last.ID );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BY ID WORD;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; N1 + last.WORD ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; END ;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Of course it n&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: Peter Crawford &#xD;
don't know why &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 24 May 2012 22:33:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-can-I-get-what-I-want-in-one-step-proc-sql/m-p/126118#M25731</guid>
      <dc:creator>Peter_C</dc:creator>
      <dc:date>2012-05-24T22:33:19Z</dc:date>
    </item>
    <item>
      <title>Re: How can I get what I want in one step, proc sql;</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-can-I-get-what-I-want-in-one-step-proc-sql/m-p/126119#M25732</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you very much!!!&lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.sas.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 24 May 2012 22:37:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-can-I-get-what-I-want-in-one-step-proc-sql/m-p/126119#M25732</guid>
      <dc:creator>HG</dc:creator>
      <dc:date>2012-05-24T22:37:55Z</dc:date>
    </item>
  </channel>
</rss>

