У меня есть некоторые данные пользователей SaaS, которые выглядят следующим образом:
start_month end_month User_Id
2019-10 2019-10 1
2019-10 2019-11 2
2019-10 2019-12 3
2019-10 2019-12 4
2019-11 2019-11 5
2019-11 2019-12 6
2019-11 2019-12 7
2019-11 2020-01 8
2019-12 2019-12 9
2019-12 2020-01 10
2019-12 NULL 11
2019-12 2020-02 12
Как видите, данные содержат дату начала подписки и дату окончания подписки.
start_month и end_month - это строки, созданные с даты начала как TO_CHAR(date_trunc('month', start_date), 'yyyy-MM') AS start_month
end_month
может быть пустым, если подписка все еще активна.
Это база данных postgresql.
Используя эти данные, я должен создать когортный отчет, который должен показывать, сколько людей начали в каждый месяц, и сколько людей из этой когорты завершили подписку в следующем месяце. По приведенным выше данным, 4 пользователя запустились в 2019-10. 1 закончился в том же месяце (0), 1 закончился в месяце 1 и 2 закончился в месяце 2. Точно так же мы должны получить для других когорт месяца начала.
Извините, но у меня нет абсолютно никаких идея о том, как я могу составить этот отчет. Я искал inte rnet, но не смог найти подходящих ответов, где когорта создается только с датами начала и окончания. Пожалуйста, помогите.