如何计算每行 MYSql 中的 AVG()

How to calculate the AVG() in MYSql of each row

我有一个 MYSQL 用户 Table 看起来像这样:

NAME /  Q1  /   Q2   /  Q3   /   Q4  /  AVG
john     3      4        2        5

其中 Q 是每个标准的分数。

我想知道如何在每个 AVG 列中插入 q1、q2、q3、q4 的平均值。

你只需要简单的数学

UPDATE `table` SET `AVG` = (Q1+Q2+Q3+Q4)/4

只需将它们相加并除以四即可。

SELECT name,
       q1,
       q2,
       q3,
       q4,
       (q1 + q2 + q3 + q4) / 4 avg
       FROM users;

或者更改设计,让成绩看起来像 table:

 userid | period | grade
--------+--------+-------
 1      | q1     | 3
 1      | q2     | 4
 1      | q3     | 2
 1      | q4     | 5

然后就可以使用聚合了。

SELECT avg(grade)
       FROM elbat
       GROUP BY userid;