Heim >Datenbank >MySQL-Tutorial >Wie generiert man in MySQL einen vollständigen Datumsbereich für die Analyse des Benutzerwachstums, auch wenn Daten fehlen?
Alle Daten in einem Bereich in MySQL abrufen, auch bei fehlenden Datensätzen
In einer Benutzerdatenbank kann es vorkommen, dass Diagramme erstellt werden müssen Darstellung des Nutzerwachstums. Eine häufig verwendete Abfrage ist:
SELECT DATE(datecreated), count(*) AS number FROM users WHERE DATE(datecreated) > '2009-06-21' AND DATE(datecreated) <= DATE(NOW()) GROUP BY DATE(datecreated) ORDER BY datecreated ASC
Während diese Abfrage gewünschte Informationen abruft, werden Daten ausgelassen, an denen keine Benutzer registriert waren. Um dieses Problem zu lösen, kann eine Lösung implementiert werden, die einen dynamischen Kalender nutzt. So geht's:
select * from ( select date_add('2003-01-01 00:00:00.000', INTERVAL n5.num*10000+n4.num*1000+n3.num*100+n2.num*10+n1.num DAY ) as date from (select 0 as num union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) n1, (select 0 as num union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) n2, (select 0 as num union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) n3, (select 0 as num union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) n4, (select 0 as num union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) n5 ) a where date >'2011-01-02 00:00:00.000' and date < NOW() order by date
Dieser dynamische Kalender generiert Daten innerhalb eines bestimmten Bereichs, sodass Daten ohne Benutzerbasis in die Ergebnisse einbezogen werden können. Durch Anpassen der Datumsgrenzen und Anwenden der Formel auf Ihre spezifische Datenstruktur können Sie ein Diagramm erstellen, das das Wachstum der Benutzerbasis genau widerspiegelt, selbst in Zeiten der Inaktivität.
Das obige ist der detaillierte Inhalt vonWie generiert man in MySQL einen vollständigen Datumsbereich für die Analyse des Benutzerwachstums, auch wenn Daten fehlen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!