1
我每遇到一個小時都會遇到記錄計數問題。計算每一小時插入表中的行數
我的表結構
CREATE TABLE `statistics` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`uuid` VARCHAR(100) NULL DEFAULT NULL,
`type_id` VARCHAR(50) NULL DEFAULT NULL,
`in_time` TIMESTAMP NULL DEFAULT NULL,
`out_time` TIMESTAMP NULL DEFAULT NULL,
`error_id` INT(10) UNSIGNED ZEROFILL NULL DEFAULT NULL,
`status` TINYINT(4) UNSIGNED NULL DEFAULT NULL,
`last_updated` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
)
ENGINE=MyISAM
AUTO_INCREMENT=1594;
我想這樣的查詢:
SELECT FLOOR(TIME_TO_SEC(TIMEDIFF(NOW(), last_updated))/3600) HOURS,COUNT(*),error_id FROM statistics WHERE last_updated > DATE_SUB(NOW(), INTERVAL 24 HOUR) GROUP BY HOUR(last_updated) and error_id != 0 ORDER BY last_updated DESC;
輸出是這樣
+-------+----------+
| HOURS | COUNT(*) |
+-------+----------+
| 1 | 205 |
| 2 | 70 |
| 3 | 14 |
| 4 | 10 |
| 5 | 16 |
| 7 | 29 |
| 8 | 412 |
| 9 | 65 |
| 10 | 79 |
| 11 | 149 |
| 12 | 317 |
| 13 | 306 |
| 14 | 356 |
| 15 | 597 |
| 16 | 433 |
| 17 | 186 |
| 18 | 527 |
| 19 | 349 |
| 20 | 397 |
| 21 | 480 |
| 22 | 460 |
| 23 | 526 |
| 23 | 411 |
+-------+----------+
,但它是不正確的。因爲同一小時(23)是不同的計數。 在此先感謝。 FLOOR(TIME_TO_SEC(TIMEDIFF(NOW(), last_updated))/3600)
目前,你計算的一件事,但另一個分組:即 -