gpt4 book ai didi

mysql - 使用 UPDATE 用 AVG 数据填充第二个表的列

转载 作者:行者123 更新时间:2023-11-29 10:58:27 24 4
gpt4 key购买 nike

这是我的两个表sold_itemscategories。 :

已售出商品:

enter image description here

类别:

enter image description here

sold_items 使用 categories 表中的 id_Categories 作为外键。

我正在使用此命令尝试填充基于给定“idCategories”的商品的 average_price - 因此为 1 或 2。我使用此命令来计算 idCategories 分类为 2 的商品的平均价格:

UPDATE categories SET average_price = (SELECT AVG(price) FROM sold_items) WHERE idCategories='2'

此命令成功执行,没有错误,但它不是计算 idCategories = 2 的两个商品的平均价格,而是计算所有产品价格的平均值,并将 638.00 的值插入 categories 表,所以它看起来像这样:

enter image description here

正确计算后的值为 999.50(即 1000+999/2)。我的 SQL 命令有什么问题?

提前致谢

最佳答案

我会推荐一个相关子查询:

UPDATE categories c
SET average_price = (SELECT AVG(si.price)
FROM sold_items si
WHERE si.iDCategories = c.idCategories
)
WHERE idCategories = 2;

这使得一次更新多个类别甚至全部类别变得更加容易。

注意:如果您的 id 是数字(您的 ID 看起来是数字),请勿使用单引号进行比较。

关于mysql - 使用 UPDATE 用 AVG 数据填充第二个表的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42651525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com