Я пытаюсь увидеть, сколько клиентов вернулось после двух лет бездействия. Я также должен объединить две таблицы со старыми (до 2008 года) и более новыми данными о закупках (после 2008 года). Каждая таблица имеет одинаковые столбцы, но разные записи.
Например, если Билл совершил покупку 1 июля 2010 года и больше ничего не покупал до 1 июля 2012 года, он будет засчитан. У каждой даты покупки есть свой столбец.
Мне предложили попробовать код, показанный ниже, но он очень медленный (у меня много записей). Мне было интересно, есть ли более эффективный способ сделать это.
(я использую Redshift)
FROM (SELECT s.cust_id, s.purchase_date,
LAG(s.purchase_date) OVER (PARTITION BY s.cust_id ORDER BY s.purchase_date,) as prev_pd
FROM newer_purchase_data s JOIN older_purchase_data l on s.cust_id = l.cust_id
) t
WHERE DATEDIFF(days, prev_pd, s.purchase_date) >= 730 /* 2 years in days */
;