В DB2 (и в большинстве других баз данных) вы используете коррелированный подзапрос:
update metrics m
set repvolocity = (select avg(m2.velocity)
from materials m2
where m2.repnumber = m.repnumber and m2.material = m.material and m2.item = m.item and m2.color = m.color
);
Следует отметить, что DB2 также позволяет легко вычислить значение на лету:
select m.*,
avg(m.velocity) over (partition by repnumber, material, item, color) as repvelocity
from materials;
С помощью оконных функций вы можете обнаружить, что нет необходимости фактически сохранять значение.Я должен добавить, что MySQL 8+ также имеет эту возможность.