如何将table1.column1的值设置为table2.column2的平均值

时间:2012-07-16 07:06:57

标签: mysql select sum average

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

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

  

table1:record_key_,id_,metric_,date_

     

table2: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.metric_列中对于前一个SELECT语句返回的table1中id1的所有记录的值的平均值?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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测试数据库。

来源:INSERT-SELECT in MySQL reference

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

相关问题