Трябва да съберете полетата и да ги разделите на броя на полетата. Ако вашият Average полето е от DECIMAL тип, в действителност дори не е необходимо да указвате ROUND функция. Всеки десетичен знак, превишаващ декларацията, просто ще бъде съкратен (SQL Fiddle
) :
UPDATE table_name
SET AVERAGE = (grade1 + grade2) / 2;
Във вашия пример имате само две полета, за които получавате средната стойност. Така че Average decimal(3,1) ще работи за вас, тъй като най-голямата десетична част, която някога ще бъде, е .5 . Така че ROUND функцията очевидно не е необходима.