当前位置: 首页 > 知识库问答 >
问题:

使用基于列值的总和更新表

蔚楷
2023-03-14

我想根据另一列的值来求和一列的值。我的桌子是这样的:

|----------------------|-------------------|----------------|
|         col1         |       col2        |      result    |
|----------------------|-------------------|----------------|
|          a           |        5          |       12       |
|          a           |        7          |       12       |
|          b           |        9          |       209      |
|          b           |        200        |       209      |
|          c           |        56         |       56       |
|----------------------|-------------------|----------------|

“结果”列是预期结果。因此,对于col1中的a,col2中的值之和对于col1=a的每一行是12。我想用update和set语句来实现这一点

到目前为止,我有以下信息:

    UPDATE Result o 
    INNER JOIN
    (
       SELECT col1, SUM(col2) sumcol
       FROM Result
       GROUP BY col1
    ) i ON o.col2 = i.col1
    SET o.result = i.sumcol

我很难找到正确的方法来做这件事。主要是语法错误。我尝试过这个查询的不同变体(例如,这里),但到目前为止都没有成功。

提前谢谢!

共有2个答案

翟缪文
2023-03-14

请尝试以下查询:

UPDATE Result o1 SET o1.result = (
     SELECT SUM(o2.col2) sumcol
     FROM Result o2
     GROUP BY o2.col1
     WHERE o2.col1 = o1.col1
)

编辑:Jocelyn的答案是,你可能加入了错误的专栏,而我没有看到。

隗翰海
2023-03-14

试试这个修改过的查询:

UPDATE Result o
INNER JOIN (
    SELECT col1, SUM(col2) AS sumcol
    FROM Result
    GROUP BY col1
) i ON o.col1 = i.col1
SET o.result = i.sumcol
 类似资料:
  • 本文向大家介绍更新基于MySQL中StudentId值的表?,包括了更新基于MySQL中StudentId值的表?的使用技巧和注意事项,需要的朋友参考一下 让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 现在让我们使用UPDATE根据StudentID更新上表- 让我们再次检查表记录- 这将产生以下输出-

  • 试图在熊猫中复制一个简单的Excel函数,但没有成功。还没有尝试np.where(),因为我想学习lambda函数,尽可能少依赖导入。 复制的函数: Lambda我测试和工作: 不起作用的熊猫的λ: 错误: 我猜它试图计算整个列,而不是逐行计算,我该如何解决这个问题?

  • 问题内容: 所以,这是我的数据框 我还有另一个清单: 如果x.Country位于欧洲,我想创建一个新列“ Continent” 问题答案: 或者您可以直接 使用

  • 我有这个原始数据帧: > 可能有多行具有相同的日期时间,如示例所示。 列< code>column中可能不止有两个不同的值,这是一个简化的示例。 所有值都是整数。 我想创建这个新的数据框: 需要采取的行动: > 对于列<code>列<code>中的每个唯一值,创建一个新列,该值作为列的名称。 对于每个唯一的日期时间,创建一个新行。 根据原始列填充值,如果没有值,则使用 NaN。 创建原始数据帧的代

  • 问题内容: 我的用于用户访问的Web应用程序体系结构以两种方式分开:-经理表(列:特权)员工表(列:特权,许可) Manager是一个超级管理员帐户,用于根据套餐类型(例如,基本,白银,黄金)来订阅我们的服务。 对于Employee,默认情况下,此acc将由Manager创建并 共享与Manager相同的特权 (订阅的服务包)。但是,经理需要为每个功能设置 权限级别 ,以便员工能够访问Web应用程

  • 问题内容: 我有两个桌子, 这是我的第一张桌子, 这是我的第二张桌子 我需要一些如何使用第一个表中的数据更新第二个表中的所有行的信息。 它需要在一个更新查询中完成所有这些操作。 SUBST_ID和SERIAL_ID都匹配,它需要从第一个表中获取created_id并将其插入第二个表中。 因此,第二张表将变为以下内容, 感谢您的帮助和指导。 问题答案: