这是我的 MySQL 表feedback。

我想计算每列的平均值,并将结果存储到表average中,使用 PHP 文件如下结构。

我正在使用查询SELECT AVG (waiting) FROM feedback来计算等待列的平均值。但是我不知道如何将此查询结果作为上述结构放入另一个表中。
使用查询时INSERT INTO average (average) SELECT AVG (waiting) FROM feedback**它只更新平均列。
请帮助我提供示例代码。
谢谢
如果正确理解你,你可以这样做
INSERT INTO average (data, average)
SELECT 'waiting', AVG (waiting) FROM feedback UNION ALL
SELECT 'consultation', AVG (consultation) FROM feedback UNION ALL
SELECT 'preoperative', AVG (preoperative) FROM feedback
样本输出:
| 数据 | 平均 | -------------------------- | 等待 | 3 | | 咨询 | 2 | | 术前| 3 |
这是SQLFiddle演示
现在,如果您的表格中没有大量数据,feedback您可以放弃average表格并以相同的方式创建视图。因此,当您从中选择时,它们将在运行中计算,而不是维护一个平均值表
CREATE VIEW average AS
SELECT 'waiting', ROUND(AVG (waiting)) average FROM feedback UNION ALL
SELECT 'consultation', ROUND(AVG (consultation)) FROM feedback UNION ALL
SELECT 'preoperative', ROUND(AVG (preoperative)) FROM feedback
并使用它
SELECT * FROM average
这是SQLFiddle演示
您可以从每列的平均值中获取结果,然后将其插入到单独的数据库中。
您现在所做的是将其插入同一数据库中的同一列,而不是不同的列,这就是为什么它只是更新该列而不是不同的列。
INSERT 查询示例:
$query = "INSERT INTO tableName (columnName) VALUES ($averageOfColumn)";
将“tableName”替换为您要连接到的新表的名称。
将“columnName”替换为您正在使用的其他数据库中的列名。
将 '$averageOfColumn' 替换为等待列的平均值的变量。
这有帮助吗?
要获得这三列的平均值:
SELECT AVG(waiting),AVG(consultation),AVG(preoperative) FROM feedback;
要插入平均表,如果列名相同:
INSERT INTO average(waiting,consultation,preoperative)
SELECT AVG(waiting),AVG(consultation),AVG(preoperative) FROM feedback