Petrus
SELECT COUNT(*), HOUR(timecode)
FROM timecodeTable
GROUP BY HOUR(timecode);
Kumpulan hasil Anda, berdasarkan data di atas, akan terlihat seperti ini:
+----------+----------------+
| COUNT(*) | HOUR(timecode) |
+----------+----------------+
| 10 | 18 |
+----------+----------------+
Banyak fungsi terkait lainnya dapat ditemukan di sini .
Sunting
Setelah melakukan beberapa tes saya sendiri berdasarkan output dari komentar Anda, saya memutuskan bahwa database Anda dalam keadaan epik gagal . :) Anda menggunakan INT sebagai TIMESTAMPs. Ini bukan ide yang bagus. Tidak ada alasan yang dapat dibenarkan untuk menggunakan INT sebagai ganti TIMESTAMP/DATETIME.
Karena itu, Anda harus mengubah contoh saya di atas sebagai berikut:
SELECT COUNT(*), HOUR(FROM_UNIXTIME(timecode))
FROM timecodeTable
GROUP BY HOUR(FROM_UNIXTIME(timecode));
Edit 2
Anda dapat menggunakan klausa GROUP BY tambahan untuk mencapai ini:
SELECT
COUNT(*),
YEAR(timecode),
DAYOFYEAR(timecode),
HOUR(timecode)
FROM timecodeTable
GROUP BY YEAR(timecode), DAYOFYEAR(timecode), HOUR(timecode);
Catatan, saya menghilangkan FROM_UNIXTIME() untuk singkatnya.