URLのヒットを記録するテーブルがあります
目標は、日ごとにグループ化されたすべてhits
を取得することですparent
parent
URLのIDを表す
time
PHPによって生成されたintですtime()
id | parent | time
これまでに思いついたクエリ: ( item を選択したいと仮定します2929
)
SELECT time, count( * ) AS hits
FROM `hits`
WHERE parent =2929
GROUP BY floor( time /86400 )
ORDER BY time ASC
今の問題は、5行しか得られないことです
time hits
1355761244 9
1355791721 22
1355879697 23
1355966014 16
1356070906 24
MySQL は 0 ヒットの日を返さないためです。
どうすればこれを修正できますか?
目標は、たとえば、過去 7 日間、30 日間、または 365 日間を選択し、0
ヒットした日数も選択することです。
先月の日を選択するように更新されたクエリ:
SELECT floor(time/86400) AS day, count( * ) AS hits
FROM `hits`
WHERE parent =2929
AND time > ONE_MONTH_AGO
GROUP BY day
ORDER BY time ASC
LIMIT 0 , 30
Pharaoh の PHP 関数では、これは正常に動作するはずです。