<?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: sum by group in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/sum-by-group/m-p/627255#M185111</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/303622"&gt;@monday89&lt;/a&gt;&amp;nbsp; I'm afraid SQL is not best suited for wide datasets.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input SubjectID	value1	value2	value3;
cards;
1	1	0	. 
1	0	1	2
1	0	0	0
1	0	0	0
2	0	1	0
2	0	0	0
2	0	0	0
2	0	0	1
2	0	0	2
2	0	0	2
3	0	0	0
4	0	0	0
4	1	0	1
4	1	1	0
;
data want;
 do until(last.subjectid);
  set have;
  by subjectid;
  array t value1-value3;
  call missing(n);
  do over t;
   if t=1 then n=sum(t,n);
  end;
  sum=sum(sum,n,0);
 end;
 keep subjectid sum;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Tue, 25 Feb 2020 17:33:14 GMT</pubDate>
    <dc:creator>novinosrin</dc:creator>
    <dc:date>2020-02-25T17:33:14Z</dc:date>
    <item>
      <title>sum by group</title>
      <link>https://communities.sas.com/t5/SAS-Programming/sum-by-group/m-p/627246#M185103</link>
      <description>&lt;P&gt;I have the following table. What I would like to do is report the sum of all 1's overall by subjectID. Only 1's, no 2's, 0's, missing&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;have&lt;/P&gt;
&lt;TABLE width="225"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="72"&gt;SubjectID&lt;/TD&gt;
&lt;TD width="51"&gt;value1&lt;/TD&gt;
&lt;TD width="51"&gt;value2&lt;/TD&gt;
&lt;TD width="51"&gt;value3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&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;0&lt;/TD&gt;
&lt;TD&gt;1&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;0&lt;/TD&gt;
&lt;TD&gt;0&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;0&lt;/TD&gt;
&lt;TD&gt;0&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;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&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;0&lt;/TD&gt;
&lt;TD&gt;0&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&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE style="border-collapse: collapse; width: 96pt;" border="0" width="128" cellspacing="0" cellpadding="0"&gt;
&lt;TBODY&gt;
&lt;TR style="height: 14.5pt;"&gt;
&lt;TD width="64" height="19" class="xl65" style="height: 14.5pt; width: 48pt;"&gt;SubjectID&lt;/TD&gt;
&lt;TD width="64" class="xl66" style="width: 48pt;"&gt;total&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.5pt;"&gt;
&lt;TD height="19" align="right" class="xl67" style="height: 14.5pt;"&gt;1&lt;/TD&gt;
&lt;TD align="right" class="xl68"&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.5pt;"&gt;
&lt;TD height="19" align="right" class="xl68" style="height: 14.5pt;"&gt;2&lt;/TD&gt;
&lt;TD align="right" class="xl68"&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.5pt;"&gt;
&lt;TD height="19" align="right" class="xl68" style="height: 14.5pt;"&gt;3&lt;/TD&gt;
&lt;TD align="right" class="xl68"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.5pt;"&gt;
&lt;TD height="19" align="right" class="xl68" style="height: 14.5pt;"&gt;4&lt;/TD&gt;
&lt;TD align="right" class="xl68"&gt;4&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;i tried the following&lt;/P&gt;
&lt;P&gt;proc sql;&lt;/P&gt;
&lt;P&gt;select subjectid, count(subjectid) as total&lt;/P&gt;
&lt;P&gt;from a.have&lt;/P&gt;
&lt;P&gt;where value1 = 1 or value2 = 1 or value3= 1;quit;&lt;/P&gt;</description>
      <pubDate>Tue, 25 Feb 2020 17:12:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/sum-by-group/m-p/627246#M185103</guid>
      <dc:creator>monday89</dc:creator>
      <dc:date>2020-02-25T17:12:09Z</dc:date>
    </item>
    <item>
      <title>Re: sum by group</title>
      <link>https://communities.sas.com/t5/SAS-Programming/sum-by-group/m-p/627253#M185109</link>
      <description>&lt;P&gt;Below will run according to what you requested; keep in mind if your expected output changes this likely won't cross over well.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Edit: Made correction to code.&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 SubjectID, SUM(Value1=1)+SUM(Value2=1)+SUM(Value3=1) As Total
	from have
	group by SubjectID;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 25 Feb 2020 17:41:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/sum-by-group/m-p/627253#M185109</guid>
      <dc:creator>Krueger</dc:creator>
      <dc:date>2020-02-25T17:41:55Z</dc:date>
    </item>
    <item>
      <title>Re: sum by group</title>
      <link>https://communities.sas.com/t5/SAS-Programming/sum-by-group/m-p/627255#M185111</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/303622"&gt;@monday89&lt;/a&gt;&amp;nbsp; I'm afraid SQL is not best suited for wide datasets.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input SubjectID	value1	value2	value3;
cards;
1	1	0	. 
1	0	1	2
1	0	0	0
1	0	0	0
2	0	1	0
2	0	0	0
2	0	0	0
2	0	0	1
2	0	0	2
2	0	0	2
3	0	0	0
4	0	0	0
4	1	0	1
4	1	1	0
;
data want;
 do until(last.subjectid);
  set have;
  by subjectid;
  array t value1-value3;
  call missing(n);
  do over t;
   if t=1 then n=sum(t,n);
  end;
  sum=sum(sum,n,0);
 end;
 keep subjectid sum;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 25 Feb 2020 17:33:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/sum-by-group/m-p/627255#M185111</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-02-25T17:33:14Z</dc:date>
    </item>
  </channel>
</rss>

