33 Stimmen

MySQL: GROUP BY Tag, Monat oder Jahr

Frage von Compi | Letztes Update am 18.01.2023 | Erstellt am 03.03.2016

Ich habe ein paar Datensätze mit einer Timestamp-Spalte, in der ein Datum eingetragen ist. Gerne würde ich jetzt die Anzahl der Datensätze ermitteln, die in ein bestimmtes Jahr oder in einem bestimmten Monat oder auf einen bestimmten Tag fallen.

Wie kann ich das mit MySQL realisieren? Ich weiß das man das irgendwie mit COUNT(id) und GROUP BY machen muss, ansonsten habe ich aber keine Ahnung.

AntwortenPositivNegativDatumStimmen
4Beste Antwort4 Stimmen

Mit COUNT(id) und GROUP BY bist du richtig beraten. In den folgenden Beispielen gehe ich davon aus dass das Datum in der Spalte "dat" steht.

So erhältst du die Anzahl gruppiert nach Jahren:

SELECT COUNT(id), YEAR(dat) FROM tab GROUP BY YEAR(dat);

So erhältst du die Anzahl gruppiert nach Monaten:

SELECT COUNT(id), MONTH(dat), YEAR(dat) 
FROM tab GROUP BY YEAR(dat), MONTH(dat);

Und so gruppiert nach Tagen:

SELECT COUNT(id), DAY(dat), MONTH(dat), YEAR(dat) 
FROM tab GROUP BY YEAR(dat), MONTH(dat), DAY(dat);

Mehr dazu in diesem Tutorial.
Letztes Update am 18.01.2023 | Erstellt am 03.03.2016

AntwortenPositiv Negativ
00 Stimmen

Nach der Gruppierung nach Monat, Jahr und Tag werden die Daten in Form einer vertikalen Liste angezeigt.

Ist es auch möglich, die Ausgabe in horizontale Listendaten umzuwandeln?
04.07.2024 um 06:10

AntwortenPositiv Negativ
00 Stimmen

Am einfachsten geht das, indem Sie einfach dieselbe Abfrage verwenden, die Daten aber rotiert ausgeben.

Wenn Sie beispielsweise PHP verwenden, können Sie das Ergebnis in ein Array laden und dieses Array nach Belieben für die Ausgabe durchlaufen.

Wenn Sie MySQL von der Shell aus verwenden, können Sie Ihrer Abfrage \G anhängen, um das Ergebnis zu rotieren.
04.07.2024 um 09:12

Positiv Negativ
Antworten
Antworten

Ähnliche Themen

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.