datetime型の列をグループ化して年月ごとにレコード数を取得する。


access_logsテーブルの中にaccess_date列があったと過程します。

そしてデータが↓の様に入っている事を想定します。

 

2015-03-02 17:35:25

2015-03-03 17:35:25

2015-04-03 17:35:25

 

この際に年・月ごとの数をgroup化することにより求めるSQLは次の様に記述します。

SELECT YEAR( access_date ) , MONTH( access_date ) , DAY( access_date ) , COUNT( * ) AS COUNT_DAILY
FROM access_logs
GROUP BY YEAR( access_date ) , MONTH( access_date ) , DAY( access_date )
ORDER BY YEAR( access_date ) ASC , MONTH( access_date ) ASC , DAY( access_date ) ASC