MySQL指定天数的平均温度

MySQL指定天数的平均温度,mysql,average,temperature,Mysql,Average,Temperature,我有一个名为data with columns的表: 日期[时间戳] 温度[int(11)] 湿度[int(11)] (例如…日期:2016-06-11 10:07:22,温度:22,湿度:50) 我每60秒收到一个新条目 我想知道是否可以定义一个查询,返回指定天数内每小时的平均温度和湿度。我需要昨天(1天)、上周(过去7天)和上月(过去30天)的平均小时数。要获得每小时的平均值,我们需要按天+小时对行进行分组 示例查询: SELECT AVG(temperature), DATE(dat

我有一个名为data with columns的表:

  • 日期[时间戳]
  • 温度[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) 

在所有情况下,该查询都会非常慢。。。但它会是这样的:
从数据组中按日期(DATE)、小时(DATE)选择平均温度、日期(DATE)、小时(DATE)
这正是我想要的。。。当你看到它的时候,事情是有道理的,但我想不出来!!如果这个答案适合您,请将其标记为已接受。根据Marki555的回答,这就是我最后所做的:选择AVG(温度)
avgtemp
,AVG(湿度)
avghum
,DATE(日期)
day
,HOUR(日期)
HOUR
FROM data WHERE DATE>=now()-间隔7天,按日期分组,按日期描述小时顺序;谢谢只是想知道是否很容易将查询更改为每6-12小时执行一次相同的平均值。。。。当我在一张图表中画出整整一个月的信息时,它看起来真的被阻塞了是的,你只需要指定哪些行将被“折叠”(分组)成一行。。。例如,
FLOOR(HOUR(date)/12)
将每12小时执行一次(前12小时将输出0,剩余12小时将输出1)。