Petr
SELECT COUNT(*), HOUR(timecode)
FROM timecodeTable
GROUP BY HOUR(timecode);
Vaše sada výsledků by vzhledem k výše uvedeným údajům vypadala takto:
+----------+----------------+
| COUNT(*) | HOUR(timecode) |
+----------+----------------+
| 10 | 18 |
+----------+----------------+
Mnoho dalších souvisejících funkcí lze nalézt zde .
Upravit
Po provedení několika vlastních testů na základě výstupu vašeho komentáře jsem zjistil, že vaše databáze je ve stavu epického selhání . :) Používáte INT jako TIMESTAMP. To není nikdy dobrý nápad. Neexistuje žádný opodstatněný důvod používat INT místo TIMESTAMP/DATETIME.
To znamená, že byste můj výše uvedený příklad museli upravit následovně:
SELECT COUNT(*), HOUR(FROM_UNIXTIME(timecode))
FROM timecodeTable
GROUP BY HOUR(FROM_UNIXTIME(timecode));
Úprava 2
K dosažení tohoto cíle můžete použít další klauzule GROUP BY:
SELECT
COUNT(*),
YEAR(timecode),
DAYOFYEAR(timecode),
HOUR(timecode)
FROM timecodeTable
GROUP BY YEAR(timecode), DAYOFYEAR(timecode), HOUR(timecode);
Poznámka:FROM_UNIXTIME() jsem pro stručnost vynechal.