2012-03-28 11 views
0

は、このクエリを持っている:最も一般的な曜日クエリ

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

DATEは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

作品はすばらしいですね、最初の日1が日曜日か月曜日かどうかはどうやって知ることができますか? – user838437

+0

DAYOFWEEKは常に1 =日曜日などを返します。 – Devart

+0

dayname()を使用すると、更新された回答が表示されます –

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

これは私が(ただし、動作しなかった)期待していたよりも多くの結果が得られました。私はSun/Mon/Tue/Wed/Thu/Fri/Satの内訳を探していて、その中で最も一般的な時間を探しています。 – user838437

+0

グループ内の列の順番を変更してみてください –

+0

一度更新された回答を試してください –

関連する問題