Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie generiere ich Monate innerhalb eines bestimmten Datumsbereichs in MySQL, einschließlich leerer Werte?

Mary-Kate Olsen
Freigeben: 2024-10-31 22:59:29
Original
1068 Leute haben es durchsucht

How to Generate Months within a Specific Date Range in MySQL, Including Empty Values?

Monate innerhalb eines bestimmten Datumsbereichs generieren, einschließlich leerer Werte

Frage:

In MySQL , wie kann ich eine Liste aller Monate innerhalb eines bestimmten Datumsbereichs erstellen, auch wenn für einige Monate keine Werte vorhanden sind?

Antwort:

Um dies zu erreichen, erstellen Sie eine separate Tabelle, die alle möglichen Monate enthält, wie zum Beispiel:

CREATE TABLE dateTable (
  myDate DATE NOT NULL,
  myYear SMALLINT NOT NULL,
  myMonth TINYINT UNSIGNED NOT NULL
);
Nach dem Login kopieren

Füllen Sie diese Tabelle mit allen Monaten, die Sie in Ihren Daten finden können.

Verwenden Sie dann einen LEFT JOIN, um Ihr Original zu kombinieren Tabelle, myTable, mit dateTable:

SELECT DT.myYear, DT.myMonth, 
       AVG(myTable.value1) AS avg_value_1, 
       AVG(myTable.value2) AS avg_value_2
FROM dateTable AS DT
LEFT JOIN myTable
  ON DT.myDate = myTable.save_date
WHERE DT.myDate BETWEEN '2009-01-01' AND '2009-07-01'
GROUP BY DT.myYear, DT.myMonth
Nach dem Login kopieren

Dadurch werden Durchschnittswerte für alle Monate innerhalb des angegebenen Bereichs abgerufen, einschließlich Monaten ohne Werte in myTable. Der LEFT JOIN stellt sicher, dass leere Werte eingeschlossen werden, indem DT.myDate mit allen Zeilen in myTable abgeglichen wird, unabhängig davon, ob sie entsprechende Werte haben.

Sie können die Ausgabe weiter anpassen, indem Sie die GROUP BY-Klausel anpassen, um Ergebnisse nach zu gruppieren gewünschte Zeiträume, z. B. Finanzquartale oder Wochentage. Dieser Ansatz bietet eine bequeme und effiziente Möglichkeit, umfassende Berichte mit vollständiger Monatsabdeckung zu erstellen.

Das obige ist der detaillierte Inhalt vonWie generiere ich Monate innerhalb eines bestimmten Datumsbereichs in MySQL, einschließlich leerer Werte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage