Peter
SELECT COUNT(*), HOUR(timecode)
FROM timecodeTable
GROUP BY HOUR(timecode);
Ihre Ergebnismenge würde angesichts der obigen Daten wie folgt aussehen:
+----------+----------------+
| COUNT(*) | HOUR(timecode) |
+----------+----------------+
| 10 | 18 |
+----------+----------------+
Viele weitere verwandte Funktionen finden Sie unter hier .
Bearbeiten
Nachdem ich anhand der Ausgabe Ihres Kommentars einige eigene Tests durchgeführt hatte, stellte ich fest, dass sich Ihre Datenbank in einem Zustand eines epischen Fehlers befindet . :) Sie verwenden INT als TIMESTAMPs. Das ist nie eine gute Idee. Es gibt keinen vertretbaren Grund, INT anstelle von TIMESTAMP/DATETIME zu verwenden.
Das heißt, Sie müssten mein obiges Beispiel wie folgt ändern:
SELECT COUNT(*), HOUR(FROM_UNIXTIME(timecode))
FROM timecodeTable
GROUP BY HOUR(FROM_UNIXTIME(timecode));
Bearbeiten 2
Dazu können Sie zusätzliche GROUP BY-Klauseln verwenden:
SELECT
COUNT(*),
YEAR(timecode),
DAYOFYEAR(timecode),
HOUR(timecode)
FROM timecodeTable
GROUP BY YEAR(timecode), DAYOFYEAR(timecode), HOUR(timecode);
Beachten Sie, dass ich FROM_UNIXTIME() der Kürze halber weggelassen habe.