Я использую MySQL, чтобы провести некоторый анализ данных о подписчиках, и я хотел бы отсортировать ежедневных активных подписчиков с момента запуска услуги. У меня есть таблица подписки, как показано ниже
id | subscriptiondate | unsubscriptiondate
---|------------------|--------------------
1 | 2020-02-12 | null
---|------------------|--------------------
2 | 2020-03-20 | 2020-04-01
---|------------------|--------------------
3 | 2020-03-10 | null
---|------------------|--------------------
4 |2020-04-02 | null
, и я ожидаю такой результат:
date | active_user
-----------|---------------------------
2020-02-12 | 1
-----------|------------------
2020-03-10 | 2
-----------|------------------
2020-03-20 | 3
-----------|------------------
2020-04-02 | 3
Подписчик отказался от 2020-04-01, поэтому у нас есть 3 активных подписчики 2020-04-02.
вот мой SQL сценарий, кто-нибудь может проверить и помочь мне в достижении моей цели?
SELECT
COUNT(distinct is) AS active_user,
date(subscriptiondate) as day
FROM
subscriptions
WHERE
subscriptiondate in (select subscriptiondate from subscriptions where subscriptiondate <=date(subscriptiondate))
AND (unsubscriptiondate is NULL or unsubscriptiondate>date(subscriptiondate))
GROUP BY
day
ORDER BY day ASC*