Heim >Datenbank >MySQL-Tutorial >Wie gruppiere ich SQL-Daten nach Monat und Jahr und formatiere die Ausgabe als „Monat-Jahr'?

Wie gruppiere ich SQL-Daten nach Monat und Jahr und formatiere die Ausgabe als „Monat-Jahr'?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-28 12:35:36199Durchsuche

How to Group SQL Data by Month and Year and Format the Output as

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!

Stellungnahme:
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