Peter
SELECT COUNT(*), HOUR(timecode)
FROM timecodeTable
GROUP BY HOUR(timecode);
Tập hợp kết quả của bạn, với dữ liệu ở trên, sẽ trông giống như sau:
+----------+----------------+
| COUNT(*) | HOUR(timecode) |
+----------+----------------+
| 10 | 18 |
+----------+----------------+
Bạn có thể tìm thấy nhiều chức năng liên quan khác tại đây .
Chỉnh sửa
Sau khi thực hiện một số thử nghiệm của riêng tôi dựa trên kết quả nhận xét của bạn, tôi xác định rằng cơ sở dữ liệu của bạn đang ở trạng thái thất bại nghiêm trọng . :) Bạn đang sử dụng INT làm TIMESTAMP. Đây không bao giờ là một ý tưởng hay. Không có lý do chính đáng nào để sử dụng INT thay cho TIMESTAMP / DATETIME.
Điều đó nói rằng, bạn phải sửa đổi ví dụ trên của tôi như sau:
SELECT COUNT(*), HOUR(FROM_UNIXTIME(timecode))
FROM timecodeTable
GROUP BY HOUR(FROM_UNIXTIME(timecode));
Chỉnh sửa 2
Bạn có thể sử dụng các mệnh đề GROUP BY bổ sung để đạt được điều này:
SELECT
COUNT(*),
YEAR(timecode),
DAYOFYEAR(timecode),
HOUR(timecode)
FROM timecodeTable
GROUP BY YEAR(timecode), DAYOFYEAR(timecode), HOUR(timecode);
Lưu ý, tôi đã bỏ qua FROM_UNIXTIME () cho ngắn gọn.