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