22 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.

AntwortenPositivNegativ
2Beste Antwort2 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
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.