mysql中两个表的加权平均值

问题描述 投票:0回答:1

我有两张桌子: - 商品(编号、数量、价格) -entry_voucher(数量,价格,id_table1) 我想计算entry_voucher中每条记录的加权平均值并更新表项目中的价格

我尝试过 boucles 但它的代码太长我想用 sql 来实现它

java sql mysql average weighted
1个回答
0
投票

不确定我是否完全理解你的目标,但这个查询可以帮助理解原理:

UPDATE items
SET price = (
    SELECT SUM(ev.quantity * ev.price) / SUM(ev.quantity)
    FROM entry_voucher ev
    WHERE ev.id_table1 = items.id
    GROUP BY ev.id_table1
);

此 SQL 查询选择 items 中的每个条目,并将其价格更新为 entry_voucher 中价格的加权平均值(按数量加权)。 GROUP BY 子句按 id_table1 对总和进行分组,确保每个商品的价格是根据 entry_voucher 中的相关行计算的。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.