是否可以添加具有其他列的平均值的列?

时间:2014-06-25 15:23:30

标签: mysql sql

我想知道是否可能有一个列具有同一个表的其他列的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。

2 个答案:

答案 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;

只需列出添加部分中的所有列,然后除以列数。