Я пытаюсь сравнить списки дат, связанных с пользователями.
Как пример:
user_id | visit_date
0000001 | 2018-03-12
0000001 | 2018-03-15
0000001 | 2018-03-27
0000002 | 2018-01-09
0000002 | 2018-02-01
0000002 | 2018-03-15
И я хочу посмотреть, изо дня в день, сколько вернувшихся пользователей мы получили, когда возвращающийся пользователь будет определен как человек, который не посещал в течение четырех недель, но теперь вернулся.
SELECT
a.user_id,
a.active_date
FROM (SELECT user_id,
visit_date as active_date,
DENSE_RANK() OVER(partition by user_id ORDER BY visit_date DESC) as rank
FROM table) a
WHERE a.rank =1
Передам мне список самых последних посещений игрока с сегодняшнего дня. Я хочу получить его на любую конкретную дату, чтобы, если мы проверим 2018-03-15, он скажет, что пользователь 2 был в этот день активируется, но, глядя на 2018-02-01, можно сказать, что они еще не стали неактивными и вернулись.