日付ごとのアクセス数をカウントするSQL
2009.03.01 / mysql
CakePHPなんかでcreatedにdatetimeの日付フィールド入れたログ用テーブル作って、あとから日付ごとにカウントした結果を表示してExcelとかでグラフつくりたいとき、なんてケースはよくあるかと思いますが、毎回このSQL忘れて面倒なことを考えがちなのでメモっておきます。
SELECT date(created), count(*) FROM access_logs group by date(created);
同一日かどうかの判定して、、とかつい無駄なことを連想しがち(な自分)。date関数でgroup byするのが一番楽ですよね。僕はMySQL Query Browserでこの結果をCSVで書き出してExcelにペースト>グラフ作成とかよくやってます。
あと、グラフをFlashで自動生成なんかもできるんですけど、その話はまた別途したいと思います。