Zählen Sie aktive Benutzer basierend auf den Anmeldungen der letzten 90 Tage.

Ich versuche, eine Abfrage zu erstellen, in der die Anzahl der aktiven Benutzer pro Monat angezeigt wird. Wir definieren einen aktiven Benutzer als einen Benutzer, der in den letzten 90 Tagen angemeldet war.

Ich kann auf einfache Weise die Anzahl der aktiven Benutzer definieren, die wir gerade haben.

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

Mein Problem tritt auf, wenn ich die Anzahl der Benutzer, die wir monatlich haben, zählen muss. Hier muss ich einen einzelnen Login mehrmals zählen.

Wenn ich einen Benutzer habe, der sich am 10. Januar anmeldet und sich nie wieder anmeldet, sollte dieser Benutzer in den folgenden Monaten als aktiver Benutzer gelten: Januar, Februar, März und April, obwohl ich nur eine Registrierung des Benutzers habe

Beispieldaten:

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

Das sollte ungefähr so aussehen:

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 

Gibt es sowieso eine solche Zählung?

Antworten auf die Frage(14)

Ihre Antwort auf die Frage