Оконная функция SQL для идентификации новых пользователей и возвращающихся с предложением динамической даты
Я довольно новичок в оконных функциях, и у меня возникли некоторые сложности с запросом в Интернете.
Я пытался найти способ приписать клиентов как новых, так и возвращающихся на основе их покупок. Цель состоит в том, чтобы иметь возможность определить в любой динамический промежуток времени, сколько новых или возвращающихся.
SELECT id,
TO_CHAR(DATE_TRUNC('month', timestamp 'epoch' + orders.created_at * interval
'1 second' ), 'YYYY-MM') as date1 ,
user_email as customer ,
COUNT(*) OVER (PARTITION BY customer ORDER BY date1 ROWS BETWEEN UNBOUNDED
PRECEDING AND CURRENT ROW) AS count_customers_to_date,
CASE WHEN COUNT(*) OVER (PARTITION BY customer ORDER BY date1 ROWS BETWEEN
UNBOUNDED PRECEDING AND CURRENT ROW) = 1 THEN 'New' ELSE 'Returning' END AS
customer_status
FROM db.orders as orders
where customer is not null
ORDER BY id, customer
Этот запрос прекрасно работает, но мне нужно добавить вторичное условие в оператор CASE, чтобы убедиться, что для пользователей, которые приобрели за тот же конкретный период времени (например, в том же месяце), они все еще приписываются как новые пользователи. Я был бы очень признателен за любую помощь.