2012-03-28 66 views
0

有這個疑問:最常見的工作日查詢

SELECT HOUR(DATE) AS hr, COUNT(*) AS cnt 
FROM users 
GROUP BY hr 
ORDER BY cnt DESC 

日期是一個DATETIME場和上面的查詢顯示我的日期字段最常見小時。

我試圖改善它,但不知道如何做到這一點,我想按星期幾和每週一天內的大多數常見小時分解它。

回答

1

嘗試此查詢 -

SELECT 
    DAYOFWEEK(DATE) AS wd, 
    HOUR(DATE) AS hr, 
    COUNT(*) AS cnt 
FROM 
users 
GROUP BY 
    wd, hr 
ORDER BY 
    cnt DESC 

SELECT 
    DATE_FORMAT(DATE, '%a') AS wd, -- or DATE_FORMAT(DATE, '%W') 
    HOUR(DATE) AS hr, 
    COUNT(*) AS cnt 
FROM 
users 
GROUP BY 
    wd, hr 
ORDER BY 
    cnt DESC 
+0

很棒!我怎麼知道第一天的第一天是星期天還是星期一? – user838437 2012-03-28 09:55:24

+0

DAYOFWEEK總是返回1 =星期日,依此類推。 – Devart 2012-03-28 09:58:58

+0

使用dayname()查看我更新的答案 – 2012-03-28 10:00:29

0

讓我知道,如果下面的工作:

SELECT dayname(DATE) as week_day,HOUR(DATE) AS hr, COUNT(*) AS cnt 
FROM users 
GROUP BY week_day, hr ORDER BY cnt DESC 
+0

這給了我更多的結果比我預期(沒有工作雖然)。我正在尋找細分:星期日/星期一/星期二/星期三/星期四/星期五/星期六,然後是最常見的時間。 – user838437 2012-03-28 09:53:32

+0

然後嘗試更改組的列順序 – 2012-03-28 09:55:08

+0

嘗試更新一次的答案 – 2012-03-28 09:59:04