<?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 Any &amp;quot;By&amp;quot; or &amp;quot;class&amp;quot; statement in PROC SQL? in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Any-quot-By-quot-or-quot-class-quot-statement-in-PROC-SQL/m-p/60092#M17023</link>
    <description>Using the following code:&lt;BR /&gt;
-------------------------------------------&lt;BR /&gt;
-------------------------------------------&lt;BR /&gt;
data have; &lt;BR /&gt;
do group = 'a','b'; &lt;BR /&gt;
do value = 1,3,3,2,5,1,8; &lt;BR /&gt;
output; end; end; run;&lt;BR /&gt;
&lt;BR /&gt;
proc sql; &lt;BR /&gt;
create view numbered as select *, &lt;BR /&gt;
monotonic() as obsnum from have; &lt;BR /&gt;
create view want as select numbered.group, numbered.value, cross.value as lookahead from numbered left join numbered as cross &lt;BR /&gt;
on numbered.group=cross.group and numbered.obsnum+1=cross.obsnum &lt;BR /&gt;
order by numbered.obsnum; &lt;BR /&gt;
quit;&lt;BR /&gt;
-------------------------------------------&lt;BR /&gt;
-------------------------------------------&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
We can have the Result below:&lt;BR /&gt;
-------------------------------------------&lt;BR /&gt;
-------------------------------------------&lt;BR /&gt;
Obs group value lookahead&lt;BR /&gt;
&lt;BR /&gt;
1        a        1        3       &lt;BR /&gt;
2        a        3        3 &lt;BR /&gt;
3        a        3        2 &lt;BR /&gt;
4        a        2        5 &lt;BR /&gt;
5        a        5        1 &lt;BR /&gt;
6        a        1        8 &lt;BR /&gt;
7        a        8        . &lt;BR /&gt;
8        b        1        3 &lt;BR /&gt;
9        b        3        3 &lt;BR /&gt;
10      b        3        2 &lt;BR /&gt;
11      b        2        5 &lt;BR /&gt;
12      b        5        1 &lt;BR /&gt;
13      b        1        8 &lt;BR /&gt;
14      b        8        .&lt;BR /&gt;
-------------------------------------------&lt;BR /&gt;
-------------------------------------------&lt;BR /&gt;
&lt;BR /&gt;
Question:&lt;BR /&gt;
How can I calculate the Maximum(Value), by group?</description>
    <pubDate>Wed, 29 Jul 2009 17:43:26 GMT</pubDate>
    <dc:creator>Ken_oy</dc:creator>
    <dc:date>2009-07-29T17:43:26Z</dc:date>
    <item>
      <title>Any "By" or "class" statement in PROC SQL?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Any-quot-By-quot-or-quot-class-quot-statement-in-PROC-SQL/m-p/60092#M17023</link>
      <description>Using the following code:&lt;BR /&gt;
-------------------------------------------&lt;BR /&gt;
-------------------------------------------&lt;BR /&gt;
data have; &lt;BR /&gt;
do group = 'a','b'; &lt;BR /&gt;
do value = 1,3,3,2,5,1,8; &lt;BR /&gt;
output; end; end; run;&lt;BR /&gt;
&lt;BR /&gt;
proc sql; &lt;BR /&gt;
create view numbered as select *, &lt;BR /&gt;
monotonic() as obsnum from have; &lt;BR /&gt;
create view want as select numbered.group, numbered.value, cross.value as lookahead from numbered left join numbered as cross &lt;BR /&gt;
on numbered.group=cross.group and numbered.obsnum+1=cross.obsnum &lt;BR /&gt;
order by numbered.obsnum; &lt;BR /&gt;
quit;&lt;BR /&gt;
-------------------------------------------&lt;BR /&gt;
-------------------------------------------&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
We can have the Result below:&lt;BR /&gt;
-------------------------------------------&lt;BR /&gt;
-------------------------------------------&lt;BR /&gt;
Obs group value lookahead&lt;BR /&gt;
&lt;BR /&gt;
1        a        1        3       &lt;BR /&gt;
2        a        3        3 &lt;BR /&gt;
3        a        3        2 &lt;BR /&gt;
4        a        2        5 &lt;BR /&gt;
5        a        5        1 &lt;BR /&gt;
6        a        1        8 &lt;BR /&gt;
7        a        8        . &lt;BR /&gt;
8        b        1        3 &lt;BR /&gt;
9        b        3        3 &lt;BR /&gt;
10      b        3        2 &lt;BR /&gt;
11      b        2        5 &lt;BR /&gt;
12      b        5        1 &lt;BR /&gt;
13      b        1        8 &lt;BR /&gt;
14      b        8        .&lt;BR /&gt;
-------------------------------------------&lt;BR /&gt;
-------------------------------------------&lt;BR /&gt;
&lt;BR /&gt;
Question:&lt;BR /&gt;
How can I calculate the Maximum(Value), by group?</description>
      <pubDate>Wed, 29 Jul 2009 17:43:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Any-quot-By-quot-or-quot-class-quot-statement-in-PROC-SQL/m-p/60092#M17023</guid>
      <dc:creator>Ken_oy</dc:creator>
      <dc:date>2009-07-29T17:43:26Z</dc:date>
    </item>
    <item>
      <title>Re: Any "By" or "class" statement in PROC SQL?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Any-quot-By-quot-or-quot-class-quot-statement-in-PROC-SQL/m-p/60093#M17024</link>
      <description>Max(Value) as maxval, ...&lt;BR /&gt;
group by group</description>
      <pubDate>Wed, 29 Jul 2009 17:56:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Any-quot-By-quot-or-quot-class-quot-statement-in-PROC-SQL/m-p/60093#M17024</guid>
      <dc:creator>Flip</dc:creator>
      <dc:date>2009-07-29T17:56:28Z</dc:date>
    </item>
    <item>
      <title>Re: Any "By" or "class" statement in PROC SQL?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Any-quot-By-quot-or-quot-class-quot-statement-in-PROC-SQL/m-p/60094#M17025</link>
      <description>Hi, But where can I put this statement? Thanks!</description>
      <pubDate>Wed, 29 Jul 2009 18:00:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Any-quot-By-quot-or-quot-class-quot-statement-in-PROC-SQL/m-p/60094#M17025</guid>
      <dc:creator>Ken_oy</dc:creator>
      <dc:date>2009-07-29T18:00:44Z</dc:date>
    </item>
    <item>
      <title>Re: Any "By" or "class" statement in PROC SQL?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Any-quot-By-quot-or-quot-class-quot-statement-in-PROC-SQL/m-p/60095#M17026</link>
      <description>proc sql;&lt;BR /&gt;
create view numbered as select *,&lt;BR /&gt;
monotonic() as obsnum from have;&lt;BR /&gt;
create view want as select numbered.group, numbered.value, cross.value as lookahead &lt;BR /&gt;
&lt;BR /&gt;
Max(Value) as maxval, &lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
from numbered left join numbered as cross&lt;BR /&gt;
on numbered.group=cross.group and numbered.obsnum+1=cross.obsnum&lt;BR /&gt;
&lt;BR /&gt;
group by group&lt;BR /&gt;
&lt;BR /&gt;
order by numbered.obsnum;&lt;BR /&gt;
quit;&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
---------------------------------------------------&lt;BR /&gt;
&lt;BR /&gt;
This is not working, I am sorry, I m new in SQL</description>
      <pubDate>Wed, 29 Jul 2009 18:02:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Any-quot-By-quot-or-quot-class-quot-statement-in-PROC-SQL/m-p/60095#M17026</guid>
      <dc:creator>Ken_oy</dc:creator>
      <dc:date>2009-07-29T18:02:43Z</dc:date>
    </item>
    <item>
      <title>Re: Any "By" or "class" statement in PROC SQL?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Any-quot-By-quot-or-quot-class-quot-statement-in-PROC-SQL/m-p/60096#M17027</link>
      <description>This should work.  You may have a conflict between order by and group by using different cols.&lt;BR /&gt;
&lt;BR /&gt;
proc sql; &lt;BR /&gt;
create view numbered as select *, &lt;BR /&gt;
monotonic() as obsnum from have; &lt;BR /&gt;
create view want as select numbered.group, numbered.value, MAX(NUMBERED.VALUE) AS MAXVAL, cross.value as lookahead from numbered left join numbered as cross &lt;BR /&gt;
on numbered.group=cross.group and numbered.obsnum+1=cross.obsnum &lt;BR /&gt;
GROUP BY NUMBERED.GROUP&lt;BR /&gt;
order by numbered.obsnum; &lt;BR /&gt;
quit;</description>
      <pubDate>Wed, 29 Jul 2009 18:04:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Any-quot-By-quot-or-quot-class-quot-statement-in-PROC-SQL/m-p/60096#M17027</guid>
      <dc:creator>Flip</dc:creator>
      <dc:date>2009-07-29T18:04:49Z</dc:date>
    </item>
    <item>
      <title>Re: Any "By" or "class" statement in PROC SQL?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Any-quot-By-quot-or-quot-class-quot-statement-in-PROC-SQL/m-p/60097#M17028</link>
      <description>Thank Flip!!&lt;BR /&gt;
Thanks for your great help!!&lt;BR /&gt;
&lt;BR /&gt;
Fixed!!</description>
      <pubDate>Wed, 29 Jul 2009 18:09:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Any-quot-By-quot-or-quot-class-quot-statement-in-PROC-SQL/m-p/60097#M17028</guid>
      <dc:creator>Ken_oy</dc:creator>
      <dc:date>2009-07-29T18:09:05Z</dc:date>
    </item>
  </channel>
</rss>

