2012-07-11 36 views
1
CREATE TABLE `call_log` (
    `call_id` int(11) NOT NULL AUTO_INCREMENT, 
    `call_time` datetime NOT NULL, 
    `caller` varchar(32) NOT NULL, 
    `name_recording_url` varchar(123) DEFAULT NULL, 
    `phone` varchar(10) NOT NULL, 
    `forwarded_from` varchar(16) NOT NULL, 
    `called_number` varchar(16) DEFAULT NULL, 
    `sent_to_phone` varchar(10) NOT NULL, 
    `market` varchar(64) NOT NULL, 
    `station` varchar(12) NOT NULL, 
    `distributor_id` int(11) NOT NULL, 
    `distributor_phone` varchar(10) NOT NULL, 
    `answered` enum('Yes','No') NOT NULL DEFAULT 'No', 
    `mode` enum('Live','Test') NOT NULL, 
    PRIMARY KEY (`call_id`) 
) 

因此,我想用不同的時間在總呼叫中填充站點。MySQL:從特定日期獲取記錄並每小時對特定站點進行分組

例如,我們有站ABCD和ASDF。 ABCD有30條記錄,ASDF有10條記錄。我想每小時都得到他們的記錄。

例子輸出爲:

station call_time(H)  total_call 
ABCD  10    5    // ABCD has 5 calls at 10am 
ABCD  12    20    // ABCD has 20 calls at 12pm 
ABCD  15    5    // ABCD has 5 calls at 3pm 
ASDF  08    4    // ASDF has 4 calls at 8am 
ASDF  05    2    // ASDF has 2 calls at 5pm 
ASDF  13    2    // ASDF has 2 calls at 1pm 
ASDF  22    2    // ASDF has 2 calls at 10pm 

回答

1

試試這個::

SELECT station, HOUR(call_time) as call_time(H), COUNT(call_id) AS total_call 
FROM call_log 
GROUP BY station, HOUR(call_time) 
5
SELECT station, HOUR(call_time), COUNT(call_id) AS total_call 
FROM call_log 
GROUP BY station, HOUR(call_time) 
+0

+1你的速度 – 2012-07-11 08:12:18

+1

OK!你們兩個都很棒! – 2012-07-11 11:58:37

+0

由於別名call_time(H),我必須將@SashiKant設置爲答案。 – 2012-07-11 12:01:58