首先,你需要修改表架构,以定义新的列:
ALTER TABLE my_table ADD COLUMN Average FLOAT;
接下来,更新表设定值:
UPDATE my_table SET Average = (Acceleration + Speed + Braking)/3;
考虑如何为新插入/更新的数据正确设置Average
。也许使用触发器:
CREATE TRIGGER calc_average_ins AFTER INSERT ON my_table FOR EACH ROW
SET NEW.Average = (NEW.Acceleration + NEW.Speed + NEW.Braking)/3;
CREATE TRIGGER calc_average_upd AFTER UPDATE ON my_table FOR EACH ROW
SET NEW.Average = (NEW.Acceleration + NEW.Speed + NEW.Braking)/3;
你可能要考虑在view,而不是引入此列,创建所需的平均值,在即时,从而防止它从底层变得desynchronised数据值(但要注意你不再获得具有价值缓存的性能优势):
CREATE VIEW my_view AS
SELECT *, (Acceleration + Speed + Braking)/3 AS Average FROM my_table;
最后,请注意,平均在现实世界中没有物理意义(这将是它的单位?):一更有意义的度量可能会也可能不会更适合您的需求。
你可以发布你的表格结构和样本数据吗? – 2012-07-24 06:46:54
您需要添加Average Filed,并且该字段的值为'Acceleration'+'Speed'+'Braking'/ 3。请给出一些示例输出 – 2012-07-24 06:48:08