DATETIMEフィールドとfloatのタイプである温度フィールドを含む温度テーブルがあります。30分ごとに温度測定が行われるため、1日48回です。私がやりたいのは、日付範囲(2012-01-01から2012-05-01など)を選択し、毎日の平均気温を計算して、その範囲内の毎日の平均気温を返すことです。ソリューション?
ありがとう
DATE()
日時フィールドの時間部分を削除するために使用し、温度列GROUP BY
の集計の句で使用します。AVG()
句WHERE
は、検索する日付範囲をフィルタリングします。
SELECT
DATE(temp_date) AS theday,
AVG(temperature) AS avgtmp
FROM
temp_readings
WHERE DATE(temp_date) BETWEEN '2012-01-01' AND '2012-05-01'
GROUP BY theday
注:あなたの説明から、毎日が測定値を持っているように聞こえますが、測定値テーブルに日が表示されない場合、ここの結果セットには表示されません。