MySQL平均温度指定天数

Posted

技术标签:

【中文标题】MySQL平均温度指定天数【英文标题】:MySQL Average temperature specifying number of days 【发布时间】:2016-06-15 09:58:43 【问题描述】:

我有一个名为 data 的表格:

日期[时间戳] 温度 [int(11)] 湿度 [int(11)]

(例如...日期:2016-06-11 10:07:22,温度:22,湿度:50)

我每 60 秒收到一个新条目。

我想知道是否可以定义一个查询来返回指定天数内每小时的平均温度和湿度。我需要昨天(1 天)、上周(过去 7 天)和上个月(过去 30 天)的小时平均值。

【问题讨论】:

该查询在所有情况下都会非常慢...但它会类似于:SELECT AVG(temperature), DATE(date), HOUR(date) FROM data GROUP BY DATE(date), HOUR(date) 这正是我要找的……当你看到它时,事情是有道理的,但我想不通! 如果该答案适合您,请将其标记为已接受。 【参考方案1】:

要获得每小时的平均值,我们需要 GROUP BY 按天 + 小时计算的行数。

示例查询:

 SELECT AVG(temperature), DATE(date), HOUR(date) FROM data GROUP BY DATE(date), HOUR(date) 

【讨论】:

基于 Marki555 的响应,这就是我最终所做的:SELECT AVG(温度)avgtemp,AVG(湿度)avghum,日期(日期)day,小时(日期)@987654326 @ FROM data WHERE date >= now() - INTERVAL 7 DAY GROUP BY day, hour ORDER BY date DESC;谢谢!!! ...只是想知道是否很容易更改查询以执行相同的平均值,但每 6-12 小时...当我在图表中绘制一整月的信息时,它看起来真的堵塞 是的,您只需要指定哪些行将被“折叠”(分组)为一个...例如FLOOR(HOUR(date)/12) 将每 12 小时生成一次(前 12 小时将输出 0,剩下的 12 小时将输出 1)。

以上是关于MySQL平均温度指定天数的主要内容,如果未能解决你的问题,请参考以下文章

按序列号和天间隔分组的平均温度

mysql查询每小时平均值

获取 Pandas 的平均年份(多年的平均天数)

如何按日期顺序计算日期之间的平均天数

记录少于 2 列之间的平均天数

计算两个日期之间的平均天数