MySQL:选择查询,5分钟增量

Hyp*_*vil 3 mysql sql pchart

我有一个天气数据库,每70秒获取一次数据集(取决于气象站何时提供数据).
我想用Pchart绘图,但我的样本太多,所以X轴搞砸了.
所以我想要大约每5分钟一次的数据.(或每30分钟)
我目前的查询是这样的:

SELECT time, temp_out FROM wmr200 WHERE date(time) = curdate()
Run Code Online (Sandbox Code Playgroud)

这样可以获得过去24小时的样本,但有太多样本.

Sam*_*aan 8

以下内容将为您提供一个样本,其中包含时间戳为:00,:05,:10的所有数据...

SELECT time, temp_out FROM wmr200 WHERE date(time) = curdate()
    AND mod(minute(time),5) = 0
Run Code Online (Sandbox Code Playgroud)

我正在使用模数函数来检查时间的微小部分是否(0或)可被5整除.


如果每个时间段只需要一个结果,我们必须要复杂得多.

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
Run Code Online (Sandbox Code Playgroud)

我现在无法访问MySQL实例来测试它,但这就是我的想法.它按每五分钟分组,按日期,小时和round(minute(time)/5,0)*5- 分组,分钟到最接近的5分钟.

它选择应该分组的时间值,以及min,avg和max temp_out,因为我不确定哪种最适合您的情况.

但是,如果您的数据库没有五分钟伸展的数据(或30分钟伸展,如果这是你正在使用的),它仍然可能没有样本点的数据.