<?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: SAS BASE - how can i perform Over Partition in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/SAS-BASE-how-can-i-perform-Over-Partition/m-p/485103#M126001</link>
    <description>&lt;P&gt;SAS SQL can do it too . No need Hash Table.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile cards expandtabs truncover;
input ID	CUST_ID	DATE : $20.	Source	$ OBJ	$ ord 	prev_date :$20.	dayDiff	prev_obj $	prev_Source $	InStore;
cards;
1	1	03AUG2018	Mail	A	1	03AUG2018	0	A	Mail	0
2	1	06AUG2018	Mail	A	2	03AUG2018	3	A	Mail	0
3	1	06AUG2018	Fax	A	3	06AUG2018	0	A	Mail	0
4	2	06AUG2018	Tel	E	1	06AUG2018	0	E	Tel	0
5	2	06AUG2018	Store	F	2	06AUG2018	0	E	Tel	1
6	3	06AUG2018	Tel	B	1	06AUG2018	0	B	Tel	0
7	3	06AUG2018	Tel	B	2	06AUG2018	0	B	Tel	0
8	4	06AUG2018	Tel	C	1	06AUG2018	0	C	Tel	0
9	4	06AUG2018	Store	D	2	06AUG2018	0	C	Tel	1
;
run;

proc sql;
create table want as
select * ,
COUNT(*) AS COUNT_overPart,
AVG(dayDiff)  AS meanDayContact_overPart,
SUM(InStore)  AS countInStore_overPart,
AVG(case when InStore = 1 then dayDiff else 0 end)  AS meanDay_InStore_overPart
from HAVE
group BY CUST_ID;
quit;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Wed, 08 Aug 2018 12:30:06 GMT</pubDate>
    <dc:creator>Ksharp</dc:creator>
    <dc:date>2018-08-08T12:30:06Z</dc:date>
    <item>
      <title>SAS BASE - how can i perform Over Partition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-BASE-how-can-i-perform-Over-Partition/m-p/484846#M125902</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;i have to write sas code that simulate an sql over partition.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;the following code is what i would like to convert in SAS:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;select * ,&lt;BR /&gt;COUNT(*) OVER (PARTITION BY CUST_ID) AS COUNT_overPart,&lt;BR /&gt;AVG(dayDiff) OVER (PARTITION BY CUST_ID) AS meanDayContact_overPart,&lt;BR /&gt;SUM(InStore) OVER (PARTITION BY CUST_ID) AS countInStore_overPart,&lt;BR /&gt;AVG(case when InStore = 1 then dayDiff else 0 end) OVER (PARTITION BY CUST_ID)end AS meanDay_InStore_overPart&lt;BR /&gt;from&amp;nbsp;HAVE&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is my HAVE table&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;CUST_ID&lt;/TD&gt;&lt;TD&gt;DATE&lt;/TD&gt;&lt;TD&gt;Source&lt;/TD&gt;&lt;TD&gt;OBJ&lt;/TD&gt;&lt;TD&gt;ord&lt;/TD&gt;&lt;TD&gt;prev_date&lt;/TD&gt;&lt;TD&gt;dayDiff&lt;/TD&gt;&lt;TD&gt;prev_obj&lt;/TD&gt;&lt;TD&gt;prev_Source&lt;/TD&gt;&lt;TD&gt;InStore&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;03AUG2018&lt;/TD&gt;&lt;TD&gt;Mail&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;03AUG2018&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;Mail&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;1&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;Mail&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;03AUG2018&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;Mail&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;Fax&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;Mail&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;2&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;Tel&lt;/TD&gt;&lt;TD&gt;E&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;E&lt;/TD&gt;&lt;TD&gt;Tel&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;Store&lt;/TD&gt;&lt;TD&gt;F&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;E&lt;/TD&gt;&lt;TD&gt;Tel&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;Tel&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;Tel&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;Tel&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;Tel&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;Tel&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;Tel&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;Store&lt;/TD&gt;&lt;TD&gt;D&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;Tel&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;and i want this table:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;CUST_ID&lt;/TD&gt;&lt;TD&gt;DATE&lt;/TD&gt;&lt;TD&gt;Source&lt;/TD&gt;&lt;TD&gt;OBJ&lt;/TD&gt;&lt;TD&gt;ord&lt;/TD&gt;&lt;TD&gt;prev_date&lt;/TD&gt;&lt;TD&gt;dayDiff&lt;/TD&gt;&lt;TD&gt;prev_obj&lt;/TD&gt;&lt;TD&gt;prev_Source&lt;/TD&gt;&lt;TD&gt;InStore&lt;/TD&gt;&lt;TD&gt;COUNT_overPart&lt;/TD&gt;&lt;TD&gt;meanDayContact_overPart&lt;/TD&gt;&lt;TD&gt;countInStore_overPart&lt;/TD&gt;&lt;TD&gt;meanDay_InStore_overPart&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;03AUG2018&lt;/TD&gt;&lt;TD&gt;Mail&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;03AUG2018&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;Mail&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1&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;1&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;Mail&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;03AUG2018&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;Mail&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1&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;3&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;Fax&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;Mail&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1&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;2&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;Tel&lt;/TD&gt;&lt;TD&gt;E&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;E&lt;/TD&gt;&lt;TD&gt;Tel&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&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;5&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;Store&lt;/TD&gt;&lt;TD&gt;F&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;E&lt;/TD&gt;&lt;TD&gt;Tel&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&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;6&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;Tel&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;Tel&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&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;7&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;Tel&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;Tel&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&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;8&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;Tel&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;Tel&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&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;9&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;Store&lt;/TD&gt;&lt;TD&gt;D&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;06AUG2018&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;Tel&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&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;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/18408"&gt;@Ksharp&lt;/a&gt;&amp;nbsp;i saw a post where you used the hash table (or another solution if he had not sufficient memory) but i couldn't use your code to accomplish my task, can you help me?&lt;/P&gt;&lt;P&gt;Here the post:&lt;/P&gt;&lt;P&gt;&lt;A href="https://communities.sas.com/t5/General-SAS-Programming/Partition-by-equivalent-in-SAS-base-or-proc-sql/td-p/415993" target="_blank"&gt;https://communities.sas.com/t5/General-SAS-Programming/Partition-by-equivalent-in-SAS-base-or-proc-sql/td-p/415993&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;</description>
      <pubDate>Tue, 07 Aug 2018 18:04:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-BASE-how-can-i-perform-Over-Partition/m-p/484846#M125902</guid>
      <dc:creator>gabras</dc:creator>
      <dc:date>2018-08-07T18:04:25Z</dc:date>
    </item>
    <item>
      <title>Re: SAS BASE - how can i perform Over Partition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-BASE-how-can-i-perform-Over-Partition/m-p/484901#M125915</link>
      <description>I'm not 100% sure but I think can solved by just specifying cust_id in the GROUP BY clause, then SAS will remerge stats with detail data.</description>
      <pubDate>Tue, 07 Aug 2018 20:29:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-BASE-how-can-i-perform-Over-Partition/m-p/484901#M125915</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2018-08-07T20:29:33Z</dc:date>
    </item>
    <item>
      <title>Re: SAS BASE - how can i perform Over Partition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-BASE-how-can-i-perform-Over-Partition/m-p/484911#M125921</link>
      <description>Hi &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13674"&gt;@LinusH&lt;/a&gt;&lt;BR /&gt;&lt;BR /&gt;I think you are referring to the group by clause of an sql statement.&lt;BR /&gt;I tried to use sql statement, calculating the over partition variabile as (select count() from have group by custId) as count_overpart but it takes a lot of time.&lt;BR /&gt;</description>
      <pubDate>Tue, 07 Aug 2018 20:58:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-BASE-how-can-i-perform-Over-Partition/m-p/484911#M125921</guid>
      <dc:creator>gabras</dc:creator>
      <dc:date>2018-08-07T20:58:31Z</dc:date>
    </item>
    <item>
      <title>Re: SAS BASE - how can i perform Over Partition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-BASE-how-can-i-perform-Over-Partition/m-p/484936#M125926</link>
      <description>&lt;P&gt;There is no partition by operator in SAS (&lt;A href="https://communities.sas.com/t5/SASware-Ballot-Ideas/Add-window-functions-in-SAS-SQL/idi-p/462556" target="_self"&gt;vote if you want it&lt;/A&gt;).&lt;/P&gt;
&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13674"&gt;@LinusH&lt;/a&gt;'s suggestion is the way to go.&lt;/P&gt;
&lt;P&gt;You may (or not) speed up the query by deriving the GROUPed BY&amp;nbsp;values separately and joining, and/or by loading the table in memory using SASFILE if it's not too large.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 07 Aug 2018 22:57:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-BASE-how-can-i-perform-Over-Partition/m-p/484936#M125926</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2018-08-07T22:57:43Z</dc:date>
    </item>
    <item>
      <title>Re: SAS BASE - how can i perform Over Partition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-BASE-how-can-i-perform-Over-Partition/m-p/485010#M125958</link>
      <description>Hi &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/16961"&gt;@ChrisNZ&lt;/a&gt;&lt;BR /&gt;Thank you for your reply.&lt;BR /&gt;&lt;BR /&gt;I hope this is not THE solution, but a workaround.&lt;BR /&gt;I think using hash table is a better solution.&lt;BR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/18408"&gt;@Ksharp&lt;/a&gt; posted a very cool way to use it (see at the bottom of my first post) but since i have never used hash table i wasn’t able to re engineering the code he wrote</description>
      <pubDate>Wed, 08 Aug 2018 06:38:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-BASE-how-can-i-perform-Over-Partition/m-p/485010#M125958</guid>
      <dc:creator>gabras</dc:creator>
      <dc:date>2018-08-08T06:38:13Z</dc:date>
    </item>
    <item>
      <title>Re: SAS BASE - how can i perform Over Partition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-BASE-how-can-i-perform-Over-Partition/m-p/485103#M126001</link>
      <description>&lt;P&gt;SAS SQL can do it too . No need Hash Table.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile cards expandtabs truncover;
input ID	CUST_ID	DATE : $20.	Source	$ OBJ	$ ord 	prev_date :$20.	dayDiff	prev_obj $	prev_Source $	InStore;
cards;
1	1	03AUG2018	Mail	A	1	03AUG2018	0	A	Mail	0
2	1	06AUG2018	Mail	A	2	03AUG2018	3	A	Mail	0
3	1	06AUG2018	Fax	A	3	06AUG2018	0	A	Mail	0
4	2	06AUG2018	Tel	E	1	06AUG2018	0	E	Tel	0
5	2	06AUG2018	Store	F	2	06AUG2018	0	E	Tel	1
6	3	06AUG2018	Tel	B	1	06AUG2018	0	B	Tel	0
7	3	06AUG2018	Tel	B	2	06AUG2018	0	B	Tel	0
8	4	06AUG2018	Tel	C	1	06AUG2018	0	C	Tel	0
9	4	06AUG2018	Store	D	2	06AUG2018	0	C	Tel	1
;
run;

proc sql;
create table want as
select * ,
COUNT(*) AS COUNT_overPart,
AVG(dayDiff)  AS meanDayContact_overPart,
SUM(InStore)  AS countInStore_overPart,
AVG(case when InStore = 1 then dayDiff else 0 end)  AS meanDay_InStore_overPart
from HAVE
group BY CUST_ID;
quit;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 08 Aug 2018 12:30:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-BASE-how-can-i-perform-Over-Partition/m-p/485103#M126001</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2018-08-08T12:30:06Z</dc:date>
    </item>
    <item>
      <title>Re: SAS BASE - how can i perform Over Partition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-BASE-how-can-i-perform-Over-Partition/m-p/485147#M126016</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/18408"&gt;@Ksharp&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thank you for the reply. It works.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you have time, can you post a solution using hash table ?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you very much&lt;/P&gt;</description>
      <pubDate>Wed, 08 Aug 2018 13:29:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-BASE-how-can-i-perform-Over-Partition/m-p/485147#M126016</guid>
      <dc:creator>gabras</dc:creator>
      <dc:date>2018-08-08T13:29:40Z</dc:date>
    </item>
    <item>
      <title>Re: SAS BASE - how can i perform Over Partition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-BASE-how-can-i-perform-Over-Partition/m-p/485152#M126018</link>
      <description>&lt;P&gt;Why ? It is not right scenario to Hash Table.&lt;/P&gt;
&lt;P&gt;But I would like to write some IML code if you want .&lt;/P&gt;</description>
      <pubDate>Wed, 08 Aug 2018 13:44:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-BASE-how-can-i-perform-Over-Partition/m-p/485152#M126018</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2018-08-08T13:44:17Z</dc:date>
    </item>
    <item>
      <title>Re: SAS BASE - how can i perform Over Partition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-BASE-how-can-i-perform-Over-Partition/m-p/485181#M126024</link>
      <description>&lt;P&gt;Yes, of course.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 08 Aug 2018 15:05:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-BASE-how-can-i-perform-Over-Partition/m-p/485181#M126024</guid>
      <dc:creator>gabras</dc:creator>
      <dc:date>2018-08-08T15:05:34Z</dc:date>
    </item>
  </channel>
</rss>

