首先,你需要修改表架構,以定義新的列:
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