繁体   English   中英

使用来自另一个表 PostgreSQL 的 SUM 更新列

[英]Update column with SUM from another table, PostgreSQL

我尝试根据另一个表中的SUM更新我的users points

UPDATE users u
INNER JOIN
(
    SELECT user_id, SUM(user_score_for_answer) as total
    FROM answer_histories
    GROUP BY user_id, total
) a ON users.id = a.user_id
SET U.points = a.total

错误:“内部”处或附近的语法错误

在 Postgres 中,语法如下所示:

UPDATE users u
    SET points = a.total
FROM (SELECT user_id, SUM(user_score_for_answer) as total
      FROM answer_histories
      GROUP BY user_id, total
     ) a 
WHERE u.id = a.user_id;

戈登的回答很棒,只是出现了一个小错误——“GROUP BY 中不允许使用聚合函数”,这可以通过简单地从 GROUP BY 中删除总计来解决。

*(由于声誉不足,我无法对此发表评论)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM