Peter
SELECT COUNT(*), HOUR(timecode)
FROM timecodeTable
GROUP BY HOUR(timecode);
Dit resultatsæt, givet ovenstående data, ville se sådan ud:
+----------+----------------+
| COUNT(*) | HOUR(timecode) |
+----------+----------------+
| 10 | 18 |
+----------+----------------+
Mange flere relaterede funktioner kan findes her .
Rediger
Efter at have lavet nogle af mine egne test baseret på outputtet af din kommentar fandt jeg ud af, at din database er i en tilstand af episk fejl . :) Du bruger INT'er som TIMESTAMPs. Dette er aldrig en god idé. Der er ingen berettiget grund til at bruge en INT i stedet for TIMESTAMP/DATETIME.
Når det er sagt, skal du ændre mit eksempel ovenfor som følger:
SELECT COUNT(*), HOUR(FROM_UNIXTIME(timecode))
FROM timecodeTable
GROUP BY HOUR(FROM_UNIXTIME(timecode));
Rediger 2
Du kan bruge yderligere GROUP BY-sætninger for at opnå dette:
SELECT
COUNT(*),
YEAR(timecode),
DAYOFYEAR(timecode),
HOUR(timecode)
FROM timecodeTable
GROUP BY YEAR(timecode), DAYOFYEAR(timecode), HOUR(timecode);
Bemærk, jeg har udeladt FROM_UNIXTIME() for kortheds skyld.