フィールドを合計し、フィールドの数で割る必要があります。 Averageの場合 フィールドはDECIMALです ROUNDを指定する必要さえないタイプ 関数。宣言を超える小数点はすべて切り捨てられます( SQL Fiddle
):
UPDATE table_name
SET AVERAGE = (grade1 + grade2) / 2;
あなたの例では、平均を取得しているフィールドは2つだけです。したがって、Average decimal(3,1) 小数点以下の部分のほとんどが.5であるため、これでうまくいきます。 。つまり、ROUND 機能は明らかに必要ありません。