Weekly cohorts of subscribers retention

103 Views Asked by At

My analysis subjects remind Netflix subscribers. Users subscribe on a certain date (e.g. 2021-04-25) and unsubscribe on another date (e.g. e.g. 2022-01-15) or null if user is still subscribed:

user_id subscription_start  subscription_end
1231    2021-03-24  2021-04-07
1232    2021-05-06  2021-05-26
1234    2021-05-28  null
1235    2021-05-30  2021-06-19
1236    2021-06-01  2021-07-07
1237    2021-06-24  2021-07-09
1238    2021-07-06  null
1239    2021-08-14  null
1240    2021-09-12  null

How could I using SQL extract the weekly cohort data of user retention. E.g. 2021-03-22 (Monday) - 2021-03-28 (Sunday) is first cohort which had a single subscriber on 2021-03-24. This user stayed with the service until 2021-04-07, that is for 3 weekly cohorts and should be displayed as active on 1, 2 and 3rd week.

The end result should look like (dummy data):

Subscribed  Week 1  Week2   Week 3  Week 4  Week 5  Week 6
2021-03-22  100 98  97  82  72  53  21
2021-03-29  100 97  88  88  76  44  22
2021-04-05  100 87  86  86  86  83  81
2021-04-12  100 100 100 99  98  97  96
2021-04-19  100 100 99  89  79  79  79
0

There are 0 best solutions below