gpt4 book ai didi

mysql - 使用列的平均值更新记录

转载 作者:行者123 更新时间:2023-11-29 04:09:39 26 4
gpt4 key购买 nike

我正在查找 status=0 的列的平均值,并将其更新到该表中的另一条记录。这是我正在尝试使用的查询。

UPDATE mc25778 set balance=(AVG(balance WHERE status=0)) WHERE username="Average"

我在尝试执行此任务时遇到此错误:

   Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE status=0)) WHERE username="Average"' at line 1

有什么办法可以解决这个问题吗?

谢谢!

最佳答案

您可以使用子查询连接表,子查询分别计算每个用户名的平均值,

UPDATE  mc25778 a
INNER JOIN
(
SELECT username, AVG(balance) avg_bal
FROM mc25778
WHERE status = 0
GROUP BY username
) b ON a.username = b.username
SET a.balance = b.avg_bal
WHERE a.username = 'Average'

更新 1

看起来您想计算所有具有status = 0 的记录的总平均值,其结果将在Average 的记录上更新

UPDATE  mc25778 a
CROSS JOIN
(
SELECT AVG(balance) avg_bal
FROM mc25778
WHERE status = 0
) b
SET a.balance = b.avg_bal
WHERE a.username = 'Average'

关于mysql - 使用列的平均值更新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15716115/

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