Peter
SELECT COUNT(*), HOUR(timecode)
FROM timecodeTable
GROUP BY HOUR(timecode);
Din resultatuppsättning, givet ovanstående data, skulle se ut så här:
+----------+----------------+
| COUNT(*) | HOUR(timecode) |
+----------+----------------+
| 10 | 18 |
+----------+----------------+
Många fler relaterade funktioner finns här .
Redigera
Efter att ha gjort några egna tester baserat på resultatet av din kommentar fastställde jag att din databas är i ett tillstånd av episkt misslyckande . :) Du använder INT som TIDSTÄMPLAR. Det här är aldrig en bra idé. Det finns ingen berättigad anledning att använda en INT i stället för TIMESTAMP/DATETIME.
Som sagt, du måste ändra mitt exempel ovan enligt följande:
SELECT COUNT(*), HOUR(FROM_UNIXTIME(timecode))
FROM timecodeTable
GROUP BY HOUR(FROM_UNIXTIME(timecode));
Redigera 2
Du kan använda ytterligare GROUP BY-satser för att uppnå detta:
SELECT
COUNT(*),
YEAR(timecode),
DAYOFYEAR(timecode),
HOUR(timecode)
FROM timecodeTable
GROUP BY YEAR(timecode), DAYOFYEAR(timecode), HOUR(timecode);
Obs, jag har utelämnat FROM_UNIXTIME() för korthetens skull.