<?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 Need to calculate the mode through SQL query. in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Need-to-calculate-the-mode-through-SQL-query/m-p/833479#M329485</link>
    <description>&lt;P&gt;Hello SAS Community,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am not getting desired output from below code while calculating mode with SAS SQL. Can anyone help me to get the problem fixed.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data new;&lt;BR /&gt;set sashelp.class;&lt;BR /&gt;if name in ('Alfred' 'Barbara' 'Carol') then name='Alice';&lt;BR /&gt;If name in ('Janet' 'Jane' 'Jeffrey' 'John' 'Joyce') then name='Judy';&lt;BR /&gt;if name in('William' 'Louise' 'Mary' 'Philip' 'Robert') then name='Ronald';&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;proc sort data=new;&lt;BR /&gt;by name sex;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;proc sql;&lt;BR /&gt;create table new_1 as&lt;BR /&gt;select name, sex, age as mode from (&lt;BR /&gt;select name, sex, age, count(1) as count from new&lt;BR /&gt;group by name, sex, age)&lt;BR /&gt;group by name, sex&lt;BR /&gt;having count=max(count);&lt;BR /&gt;quit;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Desired Output&lt;/STRONG&gt;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Name&lt;/TD&gt;&lt;TD&gt;Sex&lt;/TD&gt;&lt;TD&gt;Age&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Alice&lt;/TD&gt;&lt;TD&gt;F&lt;/TD&gt;&lt;TD&gt;13&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Alice&lt;/TD&gt;&lt;TD&gt;M&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Henry&lt;/TD&gt;&lt;TD&gt;M&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;James&lt;/TD&gt;&lt;TD&gt;M&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Judy&lt;/TD&gt;&lt;TD&gt;F&lt;/TD&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Judy&lt;/TD&gt;&lt;TD&gt;M&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Ronald&lt;/TD&gt;&lt;TD&gt;F&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Ronald&lt;/TD&gt;&lt;TD&gt;M&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Thomas&lt;/TD&gt;&lt;TD&gt;M&lt;/TD&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 15 Sep 2022 03:34:05 GMT</pubDate>
    <dc:creator>vishalrajpoot3</dc:creator>
    <dc:date>2022-09-15T03:34:05Z</dc:date>
    <item>
      <title>Need to calculate the mode through SQL query.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Need-to-calculate-the-mode-through-SQL-query/m-p/833479#M329485</link>
      <description>&lt;P&gt;Hello SAS Community,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am not getting desired output from below code while calculating mode with SAS SQL. Can anyone help me to get the problem fixed.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data new;&lt;BR /&gt;set sashelp.class;&lt;BR /&gt;if name in ('Alfred' 'Barbara' 'Carol') then name='Alice';&lt;BR /&gt;If name in ('Janet' 'Jane' 'Jeffrey' 'John' 'Joyce') then name='Judy';&lt;BR /&gt;if name in('William' 'Louise' 'Mary' 'Philip' 'Robert') then name='Ronald';&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;proc sort data=new;&lt;BR /&gt;by name sex;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;proc sql;&lt;BR /&gt;create table new_1 as&lt;BR /&gt;select name, sex, age as mode from (&lt;BR /&gt;select name, sex, age, count(1) as count from new&lt;BR /&gt;group by name, sex, age)&lt;BR /&gt;group by name, sex&lt;BR /&gt;having count=max(count);&lt;BR /&gt;quit;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Desired Output&lt;/STRONG&gt;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Name&lt;/TD&gt;&lt;TD&gt;Sex&lt;/TD&gt;&lt;TD&gt;Age&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Alice&lt;/TD&gt;&lt;TD&gt;F&lt;/TD&gt;&lt;TD&gt;13&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Alice&lt;/TD&gt;&lt;TD&gt;M&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Henry&lt;/TD&gt;&lt;TD&gt;M&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;James&lt;/TD&gt;&lt;TD&gt;M&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Judy&lt;/TD&gt;&lt;TD&gt;F&lt;/TD&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Judy&lt;/TD&gt;&lt;TD&gt;M&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Ronald&lt;/TD&gt;&lt;TD&gt;F&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Ronald&lt;/TD&gt;&lt;TD&gt;M&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Thomas&lt;/TD&gt;&lt;TD&gt;M&lt;/TD&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 15 Sep 2022 03:34:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Need-to-calculate-the-mode-through-SQL-query/m-p/833479#M329485</guid>
      <dc:creator>vishalrajpoot3</dc:creator>
      <dc:date>2022-09-15T03:34:05Z</dc:date>
    </item>
    <item>
      <title>Re: Need to calculate the mode through SQL query.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Need-to-calculate-the-mode-through-SQL-query/m-p/833492#M329489</link>
      <description>&lt;P&gt;Why do you have to use proc sql?&lt;/P&gt;
&lt;P&gt;I can't fix the sql-code, but you get the expected output by using proc summary twice.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc summary data=new nway;
   class name sex age;
   output out=count(drop= _type_ rename=(_freq_=count));
run;

proc summary data=count nway;
   class name sex;
   id age;
   var count;
   output out=want1 max=;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 15 Sep 2022 05:05:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Need-to-calculate-the-mode-through-SQL-query/m-p/833492#M329489</guid>
      <dc:creator>andreas_lds</dc:creator>
      <dc:date>2022-09-15T05:05:47Z</dc:date>
    </item>
    <item>
      <title>Re: Need to calculate the mode through SQL query.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Need-to-calculate-the-mode-through-SQL-query/m-p/833495#M329490</link>
      <description>&lt;P&gt;Your "problem" is a combination of two things. First the&lt;/P&gt;
&lt;PRE&gt;   having count= max(count)
&lt;/PRE&gt;
&lt;P&gt;will select multiple records if the count=max(count). You have many ties because of the data you have, so that having does not select single output for each group. &lt;/P&gt;
&lt;P&gt;If your data has ties at the maximum count for any combination of categories then SQL will return multiple values.&lt;/P&gt;
&lt;P&gt;If you expected a "tie breaker" to report the lowest value of age then that was not programmed anywhere.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Is there some reason you want this for Proc SQL? Proc Univariate or Means/ Summary would typically be the procedures to use to get such.&lt;/P&gt;
&lt;P&gt;But even those will not work with Judy because you have nothing but tied counts for Age by Sex.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 15 Sep 2022 05:43:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Need-to-calculate-the-mode-through-SQL-query/m-p/833495#M329490</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2022-09-15T05:43:46Z</dc:date>
    </item>
  </channel>
</rss>

