Sie müssen die Felder addieren und durch die Anzahl der Felder dividieren. Wenn Ihr Average
Feld ist DECIMAL
Typ müssen Sie nicht einmal den ROUND
angeben Funktion. Jede Dezimalzahl, die die Deklaration überschreitet, wird einfach abgeschnitten (SQL Fiddle
) :
UPDATE table_name
SET AVERAGE = (grade1 + grade2) / 2;
In Ihrem Beispiel haben Sie nur zwei Felder, aus denen Sie den Durchschnitt erhalten. Also Average decimal(3,1)
würde für Sie funktionieren, da der größte Dezimalteil jemals .5
sein wird . Also die ROUND
Funktion wird eindeutig nicht benötigt.