0

这里有点新手。我目前正在研究一个列出不同汽车详细信息的 MySQL 表。我需要一个由其他三个字段的信息组成的新字段。所以我有“加速度”、“速度”和“制动”,它们都包含两位数的整数,这些整数平均到另一个我想称之为“平均”的字段。

逻辑是“加速”+“速度”+“制动”/3

我似乎无法找出正确的语法来做到这一点。我确实需要将其作为一个字段,因为我需要将这些值显示在其他查询中。我知道 SELECT 查询可以获得我需要的结果值,但是如何将这些值传递到该表上的永久字段?

提前感谢您对此的任何帮助。

4

1 回答 1

1
  1. 首先,您需要更改表模式以定义新列:

    ALTER TABLE my_table ADD COLUMN Average FLOAT;
    
  2. 接下来,更新表以设置值:

    UPDATE my_table SET Average = (Acceleration + Speed + Braking) / 3;
    
  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;
    

您可能需要考虑改为在视图中引入此列,以便根据需要即时创建平均值,从而防止它与基础数据值不同步(但请注意,您不再获得具有缓存的值):

CREATE VIEW my_view AS
SELECT *, (Acceleration + Speed + Braking) / 3 AS Average FROM my_table;

最后,请注意,您的平均值在现实世界中没有物理意义(它的单位是什么?):更有意义的指标可能更适合您的需求,也可能不更适合您的需求。

于 2012-07-24T06:48:15.750 回答