我目前在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`);
谢谢!
答案 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;