Количество активных пользователей на основе логинов за последние 90 дней

Я пытаюсь сделать запрос, который приведет к списку, показывающему, сколько активных пользователей у нас есть месяц за месяцем. Мы определяем активных пользователей как пользователей, которые вошли в систему за последние 90 дней.

Я могу легко определить количество активных пользователей у нас сейчас по этому

SELECT COUNT(DISTINCT(user_id) FROM login_table
WHERE login_date BETWEEN DATE_SUB(login_date, INTERVAL 90 DAY) AND NOW())

Моя проблема возникает, когда мне приходится подсчитывать количество пользователей, которых у нас есть месяц за месяцем. Здесь мне нужно пересчитать один логин несколько раз.

Если у меня есть пользователь, который войдет в систему 10 января и никогда не будет входить снова, этот пользователь должен считаться активным пользователем в следующие месяцы: январь, февраль, март и апрель, даже если у меня есть только одна регистрация пользователя

Пример данных:

login_date | user_id
2015-01-01 | 1
2015-02-10 | 1
2015-02-11 | 2
2015-02-13 | 1
2015-03-19 | 1

Это должно привести к чему-то вроде этого:

Date    | Active users
2015-01 | 1 
2015-02 | 2
2015-03 | 2 
2015-04 | 2 
2015-05 | 2 
2015-06 | 1 
2015-07 | 0 
2015-08 | 0 

Есть ли способ подсчета?

Ответы на вопрос(7)

Ваш ответ на вопрос