我有一个天气数据库,它大约每 70 秒获取一次数据集(取决于气象站何时提供数据)。
我想用 Pchart 绘制它,但我有太多的样本,所以 X 轴被搞砸了。
所以我想要大约每 5 分钟的数据。 (或每 30 分钟)
我目前的查询是这样的:
SELECT time, temp_out FROM wmr200 WHERE date(time) = curdate()
这会获取过去 24 小时的样本,但数量太多。
最佳答案
以下将为您提供一个样本,其中包含时间戳为 :00, :05, :10 ...
SELECT time, temp_out FROM wmr200 WHERE date(time) = curdate()
AND mod(minute(time),5) = 0
我正在使用模函数来检查时间的分钟部分是否是(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
我现在无权访问 MySQL 实例来测试它,但这是一个想法。它每五分钟分组一次,按日期、小时和
round(minute(time)/5,0)*5
分组 - 将分钟四舍五入到最接近的 5。它选择应该分组的时间值,以及 min、avg 和 max temp_out,因为我不确定其中哪一个最适合您的情况。
但是,如果您的数据库没有 5 分钟的数据(或 30 分钟的数据,如果这是您使用的),它可能仍然没有样本点的数据。