mysqlでdate型を月毎に集計する
以下のように日付をもつテーブルがあるとする。
CREATE TABLE `event` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `prefecture` varchar(3) NOT NULL, `event_date` date NOT NULL, PRIMARY KEY (`id`) );
id | prefecture | event_date |
---|---|---|
1 | 千葉 | 2014-07-19 |
2 | 千葉 | 2014-08-01 |
3 | 佐賀 | 2014-10-10 |
4 | 滋賀 | 2014-12-01 |
5 | 佐賀 | 2014-10-10 |
6 | 滋賀 | 2014-12-02 |
このテーブルでevent_dateを月毎に集計する必要がある場合、DATE_FORMATを使って以下のように書ける。
select DATE_FORMAT(event_date, "%Y%m") as ym, count(id) as count from event group by DATE_FORMAT(event_date, "%Y%m");
ym | count |
---|---|
201407 | 1 |
201408 | 1 |
201410 | 2 |
201412 | 2 |