我想知道是否可能有一个列具有同一个表的其他列的AVG值。
例如:
Columns: ID 125Hz 250Hz 500Hz 750Hz 1000Hz 1500Hz 2000Hz 3000Hz 4000Hz 6000Hz 8000Hz AVG
Values: 1 92 82 63 83 32 43 54 56 54 34 54 50
可以计算所有其他列的平均值并将平均值自动放在AVG列上吗?我正在使用PHPMyAdmin。
答案 0 :(得分:1)
我的理解是MySQL没有计算列。如果我错了,有人会纠正我。
因此,您基本上需要此声明。
UPDATE [table_name] SET [AVG] = (125Hz + 250Hz + 500Hz + 750Hz + 1000Hz + 1500Hz + 2000Hz + 3000Hz + 4000Hz + 6000Hz + 8000Hz ) / 11;
对于每一行,将列值相加并除以11,因为有11个这样的列。它不是最精细的,因为你需要硬编码11,但它总比没有好。
您可以将其放入表格的触发器中,以便在更改时更新每一行。我想这会得到你所需要的东西。
我们提出了类似的问题和答案,可能对您有所帮助:Column calculated from another column?
答案 1 :(得分:1)
您无法将其放入原始表中,但您可以创建一个视图来完成此操作:
CREATE VIEW column_avg AS
SELECT (125Hz + 250Hz)/2 AS total_avg
FROM table_name;
只需列出添加部分中的所有列,然后除以列数。