SQL平均更新查询

时间:2014-12-13 22:03:50

标签: sql sql-update average

我得到了一个我必须做的更新查询,我正在努力解决它。

我有3列,ID,收入,平均收入。

  • ID:字符串,但按字母顺序排序。
  • AverageIncome-。平均收入的前10个收入条目。

AverageIncome的所有值都不正确,我需要更新它们才是正确的。

任何提示?

谢谢!

1 个答案:

答案 0 :(得分:0)

在MySQL语法中,并假设订单由id列定义:

CREATE TEMPORARY TABLE my_table_copy AS SELECT * FROM my_table;

UPDATE my_table t
SET average_income = (SELECT AVG(tc.income) 
                    FROM my_table_copy tc
                    WHERE tc.id < t.id
                    ORDER BY tc.id DESC
                    LIMIT 10
                    );  

DROP TABLE my_table_copy;

当然,您必须确保CREATE TABLEUPDATE以原子方式执行,即不会修改另一个之间的数据。

另外请记住,这不是一个非常好的设计,正如其他用户已经指出的那样。您的数据将具有冗余。在这种情况下,您可能会更好地使用视图。