Musisz zsumować pola i podzielić przez liczbę pól. Jeśli Twoja Average pole ma wartość DECIMAL typ, tak naprawdę nie musisz nawet określać ROUND funkcjonować. Wszelkie wartości dziesiętne przekraczające deklarację zostaną po prostu obcięte (SQL Fiddle
) :
UPDATE table_name
SET AVERAGE = (grade1 + grade2) / 2;
W twoim przykładzie masz tylko dwa pola, z których otrzymujesz średnią. A więc Average decimal(3,1) zadziałałoby dla Ciebie, ponieważ najbardziej dziesiętna część, jaką kiedykolwiek będzie, to .5 . Więc ROUND funkcja wyraźnie nie jest potrzebna.