Оконная функция 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, чтобы убедиться, что для пользователей, которые приобрели за тот же конкретный период времени (например, в том же месяце), они все еще приписываются как новые пользователи. Я был бы очень признателен за любую помощь.

0 ответов

Другие вопросы по тегам