I Need to get the weekly retention users. If user has made the transaction in week 4, that user is there in Week 0, week 1, week 2, week 3, week 4.
If User made transaction in week 0, and week 3 then user will be there in Week 0, week 1, week 2, week 3 Thanks @bbaird,
I am updating the question with precise information and question
Here is my table data
| TxnId | userid | transactedWeek |
|---|---|---|
| T1 | U1 | 0 |
| T2 | U2 | 0 |
| T3 | U3 | 0 |
| T4 | U4 | 0 |
| T5 | U1 | 0 |
| T6 | U2 | 0 |
| T7 | U6 | 0 |
| T8 | U1 | 1 |
| T9 | U8 | 1 |
| T10 | U12 | 1 |
| T11 | U3 | 1 |
| T12 | U5 | 1 |
| T13 | U9 | 2 |
| T14 | U15 | 2 |
| T15 | U20 | 3 |
| T16 | U15 | 3 |
| T17 | U15 | 3 |
| T18 | U8 | 3 |
| T19 | U9 | 4 |
| T20 | U20 | 5 |
The Result I am looking for
| Week | active_users_count |
|---|---|
| 0 | 11 |
| 1 | 8 |
| 2 | 4 |
| 3 | 4 |
| 4 | 2 |
| 5 | 1 |
Users count is kinda cumulative but unique users.
For example if user-1 has performed transaction 3 times in week-0, then count for week-0 is 1
If User-1 has performed 3 transactions in week-0, 2 transaction in week-2, 1 transaction in week-3, then count will be like this
week-0 -> 1 (i.e. he has performed transaction >= week 0)
week-1 -> 1 (i.e. he has performed transaction >= week 1)
week-2 -> 1 (i.e. he has performed transaction >= week 2)
week-3 -> 1 (i.e. he has performed transaction >= week 3)
There can be any number of weeks. It is not fixed to 4 weeks or 8 weeks.