MySQL - 每3个小时的平均数据值?

时间:2015-01-14 12:23:42

标签: mysql sql

我目前在mysql中有两个表正在收集数据。每隔3小时收集一次,另外每15分钟收集一次。我正在尝试使用机器学习技术创建预测,这需要数据具有相同的时间间隔。

我的问题是,我怎样才能将这两张桌子每3个小时的平均价值计算到一个按日期和时间组织的新表格?所以格式如下:

日期/小时/表1 3小时平均值/表2 3小时平均值

表1(每3小时): 日期时间(时间戳)/级别(双)

表2(每15分钟): 日期时间(时间戳)/值(双)

我设法创建了一张表格,让我每天的平均值,但我更喜欢更准确的内容!

这是我每天平均得出的声明:

SELECT DAY(`datetime`),
AVG(`level`) AS `Table 1 Average` ,
(SELECT AVG(`value`) AS `Table 2 Daily Average` 
FROM `table2` 
WHERE DAY(`datetime`) = DAY(table1.datetime)
GROUP BY DAY(`datetime`))
FROM `table1` GROUP BY DAY(`datetime`);

谢谢!

1 个答案:

答案 0 :(得分:0)

您真的只需要更改子查询。我想这可能是你想要的方式:

SELECT t1.*,
       SELECT AVG(t2.`value`) 
        FROM `table2` 
        WHERE t2.datetime <= t1.datime and
              t2.datetime >= date_sub(t1.datetime, interval 3 hour)
       ) as t2_moving_average
FROM `table1` t1;