0

我已经看遍了,似乎找不到明确的解决方案。对不起,如果我错过了。

我的问题:我有每小时累积并放置在 table1 中的数据,我希望 table2.metric_ 包含当天 table1.metric_ 的平均值。

表 1:record_key_、id_、metric_、date_

表 2:record_key_、id_、metric_、date_

获取我使用当天的记录列表: SELECT * FROM table1 t WHERE t.date_ >= DATE_SUB(NOW(),INTERVAL 1 DAY) WHERE t.id_='id1';

table2 的 INSERT 查询是什么样的,所以 table2.metric_ 是 table1 中由前一个 SELECT 语句返回的所有 id1 记录的 table1.metric_ 列值的平均值?

4

2 回答 2

1
insert into table2 SELECT avg(total) FROM (SELECT count(*) as Total FROM table1 t WHERE t.col= DATE_SUB(NOW(),INTERVAL 1 DAY) group by colname) as a
于 2012-07-16T07:15:25.007 回答
0
INSERT INTO table2 metric_
       SELECT AVG(t.metric_) FROM table1 t WHERE t.date_ >= DATE_SUB(NOW(),INTERVAL 1 DAY) WHERE t.id_='id1');

应该是解决方案您可以在 SELECT 语句中添加您喜欢的 date_ 格式

没有测试查询,因为我没有 MySQL 测试数据库。

来源:MySQL 参考中的 INSERT-SELECT

(我无法评论接受的答案,但我很确定这是错误的?它计算有多少条目并计算平均值(一天有多少小时?)

于 2012-07-16T07:20:29.720 回答