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
...
Please also mark the comments that contributed to the solution of the article
Content-ID: 141131
Url: https://administrator.de/contentid/141131
Printed on: December 10, 2024 at 14:12 o'clock
4 Comments
Latest comment
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