Heim >Datenbank >MySQL-Tutorial >Wie gruppiere ich SQL-Daten nach Monat und Jahr und formatiere die Ausgabe als „Monat-Jahr'?
SQL-Gruppierung nach Monat und Jahr
In SQL ist das Gruppieren von Daten nach Monat und Jahr eine häufige Aufgabe bei der Analyse zeitlicher Daten. Um dies zu erreichen, können Sie die Funktionen MONTH() und YEAR() zusammen mit der GROUP BY-Klausel verwenden.
Problembeschreibung
Beim Abfragen stößt ein Benutzer auf ein Problem eine Bestelltabelle, um die Spalte „Datum“ als „Monat-Jahr“ anzuzeigen (z. B. „9-2011“). Sie haben die folgende Abfrage verwendet:
SELECT MONTH(date) + '.' + YEAR(date) AS Mjesec, SUM(marketingExpense) AS SumaMarketing, SUM(revenue) AS SumaZarada FROM [Order] WHERE (idCustomer = 1) AND (date BETWEEN '2001-11-3' AND '2011-11-3') GROUP BY MONTH(date), YEAR(date)
Diese Abfrage zeigt jedoch nur Monate an (z. B. „9“) und der Benutzer möchte sowohl Monat als auch Jahr in die Ausgabe einbeziehen.
Lösung
Um dieses Problem zu beheben, können Sie die Funktion CAST() verwenden, um die Monats- und Jahreswerte in Zeichenfolgen umzuwandeln Verketten Sie sie mit einem Bindestrich dazwischen. Hier ist die aktualisierte Abfrage:
SELECT CAST(MONTH(date) AS VARCHAR(2)) + '-' + CAST(YEAR(date) AS VARCHAR(4)) AS Mjesec, SUM(marketingExpense) AS SumaMarketing, SUM(revenue) AS SumaZarada FROM [Order] WHERE (idCustomer = 1) AND (date BETWEEN '2001-11-3' AND '2011-11-3') GROUP BY CAST(MONTH(date) AS VARCHAR(2)) + '-' + CAST(YEAR(date) AS VARCHAR(4))
Diese Abfrage gibt die Spalte „Datum“ im gewünschten Format zurück und zeigt sowohl Monat als auch Jahr an.
Eine andere Option besteht darin, bei der Umwandlung führende Nullen zu verwenden Stellen Sie eine einheitliche Formatierung sicher. Dies kann mit der Funktion right() erreicht werden:
GROUP BY CAST(YEAR(date) AS VARCHAR(4)) + '-' + right('00' + CAST(MONTH(date) AS VARCHAR(2)), 2)
Dieser Ansatz fügt führende Nullen zu einstelligen Monatswerten hinzu, was zu einer einheitlichen Formatierung führt (z. B. „09-2011“).
Das obige ist der detaillierte Inhalt vonWie gruppiere ich SQL-Daten nach Monat und Jahr und formatiere die Ausgabe als „Monat-Jahr'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!