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.