si tu ejecutas esta consulta
cuantos registros te dan? siempre será uno?
yo lo probaría cargando una variable promedio con la consulta por fuera. Tal como lo haces con el count. Y en el insert y update pasar esta variable a las sentencias insert y update.
saludos