<?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: COALESCE function in PROC SQL question in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/COALESCE-function-in-PROC-SQL-question/m-p/688108#M208981</link>
    <description>&lt;P&gt;Agree, I avoid natural joins, but here there is no room for error or ambiguity.&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 01 Oct 2020 05:10:21 GMT</pubDate>
    <dc:creator>ChrisNZ</dc:creator>
    <dc:date>2020-10-01T05:10:21Z</dc:date>
    <item>
      <title>COALESCE function in PROC SQL question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/COALESCE-function-in-PROC-SQL-question/m-p/688050#M208952</link>
      <description>&lt;P&gt;I am trying to use the COALESCE function with PROC SQL in order to output zero values for the GROUP BY variable categories in my data set.&amp;nbsp; Here is how I constructed the code string:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;coalesce (count(distinct AccountNumber),0) as total_accts format comma14., &lt;BR /&gt;coalesce (sum(balance),0) as total_bal format dollar14.2&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Unfortunately, I still receive no output for any GROUP BY variables that produce zero values and no error message is produced in the log.&amp;nbsp; What am I doing wrong?&amp;nbsp; Any assistance would be greatly appreciated for this programming issue.&amp;nbsp; Thanks.&lt;/P&gt;</description>
      <pubDate>Wed, 30 Sep 2020 22:46:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/COALESCE-function-in-PROC-SQL-question/m-p/688050#M208952</guid>
      <dc:creator>greg6363</dc:creator>
      <dc:date>2020-09-30T22:46:27Z</dc:date>
    </item>
    <item>
      <title>Re: COALESCE function in PROC SQL question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/COALESCE-function-in-PROC-SQL-question/m-p/688053#M208954</link>
      <description>&lt;P&gt;If a particular combination of GROUP BY variable categories does not exist in your input data no row will be produced in your output data for that combination so COALESCE will not fix that.&lt;/P&gt;
&lt;P&gt;If you want an output row for every combination of GROUP BY variable category then you will have to create a table of those first and then UNION that with your input table:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
  create table want as
  select CategoryVar
            ,count(distinct (AccountNumber)) as Count
  from Have
  group by CategoryVar
  having Count &amp;gt; 0
  union
  select CategoryVar
          ,0
  from HaveWithAllCategories
  ;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 30 Sep 2020 23:23:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/COALESCE-function-in-PROC-SQL-question/m-p/688053#M208954</guid>
      <dc:creator>SASKiwi</dc:creator>
      <dc:date>2020-09-30T23:23:48Z</dc:date>
    </item>
    <item>
      <title>Re: COALESCE function in PROC SQL question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/COALESCE-function-in-PROC-SQL-question/m-p/688064#M208956</link>
      <description>&lt;P&gt;Your SQL query will not create data that does not exist.&lt;/P&gt;
&lt;P&gt;To create all possible crossings, you can replace and expand the source table of your query:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;...&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;from &lt;/FONT&gt;&lt;FONT face="courier new,courier"&gt; (select unique VAR1 from TABLE)&amp;nbsp; cart1&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cross join&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;(select unique VAR2 from TABLE)&amp;nbsp; cart2&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; natural left join&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;TABLE&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; data&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;group by&amp;nbsp;cart1.VAR1, cart2.VAR2;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 01 Oct 2020 01:38:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/COALESCE-function-in-PROC-SQL-question/m-p/688064#M208956</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2020-10-01T01:38:06Z</dc:date>
    </item>
    <item>
      <title>Re: COALESCE function in PROC SQL question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/COALESCE-function-in-PROC-SQL-question/m-p/688098#M208974</link>
      <description>&lt;P&gt;There seems to be something not quite right with SAS and you may need to add a keep option:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;from&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face="courier new,courier"&gt;(select unique VAR1 from TABLE(keep=VAR1))&amp;nbsp; cart1&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cross join&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;(select unique VAR2 from TABLE(keep=VAR2))&amp;nbsp; cart2&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; natural left join&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;TABLE&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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;data&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;group by&amp;nbsp;cart1.VAR1, cart2.VAR2;&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 01 Oct 2020 03:50:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/COALESCE-function-in-PROC-SQL-question/m-p/688098#M208974</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2020-10-01T03:50:02Z</dc:date>
    </item>
    <item>
      <title>Re: COALESCE function in PROC SQL question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/COALESCE-function-in-PROC-SQL-question/m-p/688103#M208978</link>
      <description>&lt;P&gt;natural joins can be tricky, I prefer a more explicit join:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
select 
    a.sex,
    b.age,
    count(weight) as n,
    mean(weight) as meamWeight
from
    (select unique sex from sashelp.class) as a
    cross join
    (select unique age from sashelp.class) as b
    left join 
    sashelp.class as c on a.sex=c.sex and b.age=c.age
group by a.sex, b.age;
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: 149px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/50036i698AD90D63C0081C/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>Thu, 01 Oct 2020 14:05:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/COALESCE-function-in-PROC-SQL-question/m-p/688103#M208978</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2020-10-01T14:05:31Z</dc:date>
    </item>
    <item>
      <title>Re: COALESCE function in PROC SQL question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/COALESCE-function-in-PROC-SQL-question/m-p/688108#M208981</link>
      <description>&lt;P&gt;Agree, I avoid natural joins, but here there is no room for error or ambiguity.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 01 Oct 2020 05:10:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/COALESCE-function-in-PROC-SQL-question/m-p/688108#M208981</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2020-10-01T05:10:21Z</dc:date>
    </item>
    <item>
      <title>Re: COALESCE function in PROC SQL question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/COALESCE-function-in-PROC-SQL-question/m-p/688414#M209123</link>
      <description>&lt;P&gt;A defect has been created for the inability to run the query without an uneeded modification such as adding &lt;FONT face="courier new,courier"&gt;keep=&lt;/FONT&gt;.&lt;/P&gt;
&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13711"&gt;@art297&lt;/a&gt;&amp;nbsp;Another defect! &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 02 Oct 2020 00:59:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/COALESCE-function-in-PROC-SQL-question/m-p/688414#M209123</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2020-10-02T00:59:50Z</dc:date>
    </item>
  </channel>
</rss>

