以下は、タイムスタンプが:00、:05、:10..のデータで構成されるサンプルを取得します。
SELECT time, temp_out FROM wmr200 WHERE date(time) = curdate()
AND mod(minute(time),5) = 0
モジュロ関数を使用して、時間の分の部分が(0または)5で割り切れるかどうかを確認しています。
時間セグメントごとに1つの結果のみが必要な場合は、かなり複雑にする必要があります。
SELECT concat(date(time),' ',hour(time),':',round(minute(time)/5,0)*5),
min(temp_out), avg(temp_out), max(temp_out)
FROM wmr200
GROUP BY date(time), hour(time), round(minute(time)/5,0)*5
現在、MySQLインスタンスにアクセスしてテストすることはできませんが、ここにアイデアがあります。5分ごとに、日付、時間、およびでグループ化されますround(minute(time)/5,0)*5
。これは、分を最も近い5に丸めます。
グループ化する時間の値と、min、avg、max temp_outを選択します。これは、これらのどれがあなたの状況に最も適しているかわからなかったためです。
ただし、DBに5分間のストレッチ(または、使用している場合は30分間のストレッチ)のデータがない場合でも、サンプルポイントのデータがない可能性があります。