Group by über eine Datumsspalte (MSSQL) Edit MYSQL SQLite
Hallo an alle,
weil ich gerade selber darüber gestolpert bin und man es vielleicht gelegentlich mal brauchen kann hier meine Lösung um ein Group BY über eine Datumsspalte zu machen. Muss natürlich nicht die beste sein aber für mich funktioniert sie.
Angenommen man hat eine Tabelle mit den 2 Spalten ID und Datum. Das Datum ist in der Form YYYY-MM-DD HH:MM:SS gespeichert. Ein simples Group By für die einzelnen Tage funktioniert durch die abweichenden Zeiten dadurch nicht. Mit folgendem Statement lässt sich das Trotzdem realisieren.
Die Ausgabe wäre dann soetwas wie:
Datum | Anzahl
21 Apr 2010 | 42
16 Apr 2010 | 130
...
weil ich gerade selber darüber gestolpert bin und man es vielleicht gelegentlich mal brauchen kann hier meine Lösung um ein Group BY über eine Datumsspalte zu machen. Muss natürlich nicht die beste sein aber für mich funktioniert sie.
Angenommen man hat eine Tabelle mit den 2 Spalten ID und Datum. Das Datum ist in der Form YYYY-MM-DD HH:MM:SS gespeichert. Ein simples Group By für die einzelnen Tage funktioniert durch die abweichenden Zeiten dadurch nicht. Mit folgendem Statement lässt sich das Trotzdem realisieren.
SELECT CONVERT(CHAR(12), [Datum], 106) AS Datum,
Count([ID]) AS Anzahl
FROM Tabelle
GROUP BY DATEPART(yy, [Datum]),
DATEPART(dy, [Datum]),
CONVERT(CHAR(12), [Datum], 106)
ORDER BY DATEPART(yy, [Datum]) desc,
DATEPART(dy, [Datum]) desc
Die Ausgabe wäre dann soetwas wie:
Datum | Anzahl
21 Apr 2010 | 42
16 Apr 2010 | 130
...
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 141131
Url: https://administrator.de/tutorial/group-by-ueber-eine-datumsspalte-mssql-edit-mysql-sqlite-141131.html
Ausgedruckt am: 22.12.2024 um 07:12 Uhr
4 Kommentare
Neuester Kommentar
SELECT
DATE_FORMAT(`Datum`, '%d %b %Y') AS 'Datum',
COUNT(`Id`) AS 'Anzahl'
FROM `Tabelle`
GROUP BY DATE(`Datum`)
ORDER BY `Datum` DESC;
Edit: http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html