datetime型で次々にデータをつっこんでいって、
集計時には日付ごとのデータを出したいってことがよくあるのですけれど、
date関数を使えば超早いらしいです(MySQL 4.1.1以降)。
[MySQL]datetime型のデータから日付別の集計を行う | 1人で稼ぐ日記
MySQL :: MySQL 4.1 リファレンスマニュアル :: 6.3.4 日付と時刻関数
なるほど。
サンプルテーブル
points
point | datetime | |
---|---|---|
47 | 2010-06-18 04:09:10 | |
62 | 2010-06-18 04:12:23 | |
89 | 2010-06-18 19:24:48 | |
12 | 2010-06-19 07:12:05 | |
43 | 2010-06-20 08:24:11 | |
95 | 2010-06-20 23:11:45 |
クエリ
SELECT
date(p.datetime) as date
, MIN(p.point) as min
, MAX(p.point) as max
, AVG(p.point) as avg
FROM
points p
GROUP BY
date
;
結果
date | min | max | avg | |
---|---|---|---|---|
2010-06-18 | 47 | 89 | 66 | |
2010-06-19 | 12 | 12 | 12 | |
2010-06-20 | 43 | 95 | 69 |