【メモ】datetime型のデータから日付ごとの最小/最大/平均を取得する


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