Отсутствует ошибка ключевого слова в разделе по заявлению - PullRequest
0 голосов
/ 17 мая 2019

Я пытаюсь найти сценарий, когда с клиентом связывались более 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;

Буду признателен за любую помощь.Я надеюсь, что что-то легко, что мои глаза просто размыты.

1 Ответ

1 голос
/ 17 мая 2019

Вам не хватает одинарных кавычек в буквальном интервале :

Syntax for interval literal

Цитаты не являются обязательными. Так должно быть:

...
      count(id) over (partition by customer_id order by call_date range between interval '6' day preceding and current row) call_num
                                                                                ---------^ ^
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...