1. Reproduktion des Problems:Zählen Sie die Gesamtzahl jedes Tages für jeden Tag. Wenn es Tage ohne Daten gibt, ignoriert die Gruppierung diese Tage. Wie füllt man sie mit 0? Wie in der folgenden Abbildung dargestellt, werden die Daten für die sieben Tage vom 3.10. bis zum 10.10. gezählt, von denen nur der 8. und 10. Daten aufweisen. Auf diese Weise werden nur 2 Daten zurückgegeben, was den statistischen Anforderungen des Berichts nicht entspricht. Erwarten Sie, dass kein Wert mit 0 gefüllt wird 2. Ändern Sie Ihre Denkweise:Wir verwenden eine Reihe aufeinanderfolgender Tage als linke Tabelle, verknüpfen dann die abzufragenden Daten links und gruppieren schließlich nach: Tabelle mit aufeinanderfolgenden Tagen, t1, linke Verknüpfung, Geschäftsdaten, t2, Gruppierung nach t1.day, wie unten gezeigt: WÄHLEN t1.`Tag`, COUNT(t2.user_id) Zahlungsnummer AUS (WÄHLEN @cdate := DATE_ADD(@cdate, INTERVALL - 1 TAG) TAG AUS (WÄHLEN @cdate := DATE_ADD('20171219', INTERVALL + 1 TAG) AUS Reihenfolge) t0 GRENZE 7) t1 LINKS VERBINDEN (WÄHLEN DATUM(a.Erstellungszeit) TAG, a.Benutzer-ID AUS pay_payment eine Händler-Shop beitreten b ON a.Bestellnummer = b.Bestellnummer WHERE DATE(Erstellungszeit) <= '20171219' UND DATUM(Erstellungszeit) > DATE_SUB('20171219', INTERVALL 7 TAGE) ) t2 EIN t2.Tag = t1.Tag GRUPPE NACH t1.`Tag`; 2.1 Tabelle der aufeinanderfolgenden TageWÄHLEN @cdate := DATE_ADD(@cdate, INTERVALL - 1 TAG) TAG AUS (WÄHLEN @cdate := DATE_ADD('20171219', INTERVALL + 1 TAG) AUS Reihenfolge) t0 GRENZE 7 Die Ausführungsergebnisse sind wie folgt: SQL-Analyse: 1. 2. 3. 4. 5. LIMIT 7 Begrenzen Sie die Anzahl der Datensätze. Das ist alles. Wir haben die Datensätze 7 Tage vor dem angegebenen Datum erhalten. 2.2 Links verbinden und dann gruppieren Das heißt, gemäß den mit der linken Tabelle verknüpften Geschäftsdaten werden die Daten nach dem Datum der linken Tabelle gruppiert, d. h. sie werden in die angegebenen 7 Tage Daten unterteilt. Wenn ein Datensatz vorhanden ist, wird die Anzahl der Einträge gezählt, und wenn kein Datensatz vorhanden ist, ist sie 0. Endgültiges Ausführungsergebnis: Zusammenfassen Oben ist der Implementierungscode, den ich Ihnen vorgestellt habe, um 0 in MySQL gemäß dem täglichen statistischen Bericht einzutragen, wenn an diesem Tag keine Daten vorliegen. Ich hoffe, er wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken! Das könnte Sie auch interessieren:
|
<<: So geben Sie Speicherplatz unter CentOS 6 oder CentOS 7 frei
>>: JS Canvas-Oberfläche und Animationseffekte
Inhaltsverzeichnis 1.Bereitstellung der serversei...
In diesem Artikelbeispiel wird der spezifische Co...
Hinweis: Das System ist Ubuntu 14.04LTS, ein 32-B...
In vertikaler Richtung können Sie die Zellenausri...
Vererbung von Prototypketten Die Prototypenvererb...
Hintergrund Wenn wir über Transaktionen sprechen,...
Inhaltsverzeichnis 1. Nutzung 2. Ausgabeergebniss...
Fehler Beim Herstellen einer Verbindung zu MySQL ...
Inhaltsverzeichnis Tutorial-Reihe 1. Beschreibung...
Drei nützliche Codes, die Besuchern dabei helfen,...
CSS: Code kopieren Der Code lautet wie folgt: html...
1. Funktionseinführung sed (Stream EDitor) ist ei...
Was ist my.ini? my.ini ist die in der MySQL-Daten...
Folgendes ist passiert. Heute habe ich mit GitHub...
Vorwort Die meisten Benutzer führen diesen Vorgan...