У меня есть данные, как показано ниже.
MSISDN DATE NET_TYPE
11111 01/01/2017 1
11111 02/01/2017 1
11111 03/01/2017 1
11111 04/01/2017 2
11111 05/01/2017 2
11111 06/01/2017 2
11111 07/01/2017 2
11111 08/01/2017 2
11111 09/01/2017 1
11111 10/01/2017 1
11111 11/01/2017 1
11111 12/01/2017 1
11111 13/01/2017 1
11111 14/01/2017 2
11111 15/01/2017 2
11111 16/01/2017 2
Я ищу решение, в котором я создаю новую переменную, которая помогает выбрать каждое первое и последнее появление NET_TYPE за определенный период времени (значения даты не фиксированы, NET_TYPE может быть 1 или 2 в течение дней или месяцев или лет). Решение я смотрю, как показано ниже.
MSISDN DATE NET_TYPE INDICATOR
11111 01/01/2017 1 1
11111 02/01/2017 1 0
11111 03/01/2017 1 1
11111 04/01/2017 2 1
11111 05/01/2017 2 0
11111 06/01/2017 2 0
11111 07/01/2017 2 0
11111 08/01/2017 2 1
11111 09/01/2017 1 1
11111 10/01/2017 1 0
11111 11/01/2017 1 0
11111 12/01/2017 1 0
11111 13/01/2017 1 1
11111 14/01/2017 2 1
11111 15/01/2017 2 0
11111 16/01/2017 2 1
если вы можете предоставить решение, SAS очень полезен.
Код, который я уже пробовал, не работает в SAS:
SELECT *,
CASE
WHEN net_type <> COALESCE(Lag(net_type, 1)
OVER (
partition BY sub_no
ORDER BY dt), 99) THEN dt
END AS starting,
CASE
WHEN net_type <> COALESCE(Lag(net_type, 1)
OVER (
partition BY sub_no
ORDER BY dt DESC), 99) THEN dt
END AS ending
FROM table
ORDER BY dt