Я пытаюсь найти сценарий, когда с клиентом связывались более 3 раз в течение 7-дневного скользящего периода.Поскольку я работаю в SAS почти для всего, для этого я пытался подключиться к стороне оракула и использовать инструкцию раздела, чтобы получить то, что мне нужно.Я создал тестовый сценарий, чтобы попытаться заставить его работать, но в настоящее время он выдает ошибку «Отсутствует ключевое слово», и я не могу увидеть, чего он не хватает.
Это мой тестовый набор данных:
data work.have;
input customer_id id call_date yymmdd10.;
format call_date yymmdd10.;
cards;
111 1111 2019-03-01
111 1112 2019-03-01
111 1113 2019-03-02
111 1114 2019-03-03
111 1115 2019-03-04
111 1116 2019-03-05
111 1117 2019-03-06
111 1118 2019-03-07
111 1119 2019-03-08
111 1120 2019-03-09
111 1121 2019-04-01
222 1122 2019-02-01
222 1123 2019-03-02
222 1124 2019-03-03
222 1125 2019-03-01
222 1126 2019-03-11
222 1127 2019-03-12
222 1128 2019-03-13
;
run;
А вот код, который у меня есть:
proc sql;
connect to oracle as test (user=&user. pw=&pass. path='path');
create table work.want as
select * from connection to test (
select id, call_date, customer_id, call_num
from (select id, call_date, customer_id,
count(id) over (partition by customer_id order by call_date range between interval 6 day preceding and current row) call_num
from work.have where call_date between '2019-02-22' and '2019-03-31' order by customer_id, id) t
where call_num >= 4
);
disconnect from test;
quit;
Буду признателен за любую помощь.Я надеюсь, что что-то легко, что мои глаза просто размыты.