gpt4 book ai didi

mysql - 计算 MySQL 中每个用户的平均消息质量

转载 作者:行者123 更新时间:2023-11-29 02:32:03 26 4
gpt4 key购买 nike

考虑下表:

users                    messages
------------------- ----------------------
user_id avg_quality msg_id user_id quality
------------------- ----------------------
1 1 1 1
2 2 1 0
3 3 1 0
4 1 1
5 1 1
6 2 0
7 2 0
8 3 1

messages.quality01。我需要计算每个用户的平均消息质量并相应地更新 users.avg_quality。因此,所需的输出将像这样修改 users 表:

users
-------------------
user_id avg_quality <-- DECIMAL (8,2)
-------------------
1 0.60 <-- (3x1 + 2x0) / 5
2 0.00 <-- (2x0) / 2
3 1.00 <-- (1x1) / 1

我是这样开始查询的,我知道语法不正确,但没有更好的主意。你呢?

UPDATE messages m, users u
SET avg_quality = (SELECT COUNT(m.msg_id) / SUM(m.quality))
WHERE m.user_id = u.user_id

最佳答案

这应该有效:

UPDATE users u
INNER JOIN (SELECT a.user_id, AVG(quality) avg_quality
FROM messages a
INNER JOIN users b
ON a.user_id = b.user_id
GROUP BY a.user_id
) tmp
ON u.user_id = tmp.user_id
SET u.avg_quality = tmp.avg_quality;

关于mysql - 计算 MySQL 中每个用户的平均消息质量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11647182/

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