在SQL中为每一行计算2列的AVERAGE

时间:2014-10-09 14:24:24

标签: mysql average

作为一个例子,我将从MySQL获得这个表

Id  | Name  | Grade 1  | Grade 2 | Average

1.  | Jack  | 9        | 10      |
2.  | Jimmy | 9        | 8       |
2.  | Emmy  | 9        | 7       |

因此,在此表的“平均值”字段中,我需要从 1年级 2年级字段计算平均值。我尝试了很多可能性,我知道它们错了:

UPDATE table_name SET Average=AVG(Grade 1 + Grade 2)

我有办法做到这一点吗?谁能帮我?谢谢!

1 个答案:

答案 0 :(得分:1)

您需要将字段一起添加并除以字段数。如果您的Average字段属于DECIMAL类型,则您甚至不需要指定ROUND函数。任何超过声明的小数都将被截断(SQL Fiddle):

UPDATE table_name 
SET AVERAGE = (grade1 + grade2) / 2;

在您的示例中,您只有两个字段可以获得平均值。所以Average decimal(3,1)对你有用,因为小数部分最多的是.5。因此显然不需要ROUND功能。