我试图将一个表中的值设置为另一个表中的值之和.大致如下:

UPDATE table1
SET field1 = SUM(table2.field2)
FROM table1
INNER JOIN table2 ON table1.field3 = table2.field3
GROUP BY table1.field3

当然,就目前的情况来看,它是行不通的——SET不支持SUM,也不支持GROUP BY.

我应该知道,但我的脑子一片空白.我做错了什么?

推荐答案

UPDATE t1
SET t1.field1 = t2.field2Sum
FROM table1 t1
INNER JOIN (select field3, sum(field2) as field2Sum
   from table2
  group by field3) as t2
on t2.field3 = t1.field3  

Sql相关问答推荐

Snowflake SQL比较克隆x原始计数

用于平均多个数据并与一个数据点进行比较以判断偏移量的SQL查询

SQL(PostgreSQL)从条件创建点表

在Postgres中实现合并功能的干净方法,因为当目标/源不匹配时

分组多输出访问查询问题

仅在特定字符串之后提取两个圆括号之间的计量单位文本

根据开始日期和结束日期的差异计算每天的计费

在SQL Server中设置关联对象的有效JSON格式

VS代码无法识别SQL代码中带括号的字符串

为什么SQL in中的空子查询有时被视为null

存储过程太慢

Netezza SQL:判断两个表是否相同

如何在 golang squirrel lib 中添加 postgreSQL 的distinct on

Grafana SQL 模板变量(值、文本)

如何使用 Google BigQuery 中的条件根据特定列值连接列的 N 行?

SQL 如何根据当前事件和下一个事件确定操作的持续时间?

如何在第二个 INSERT 中使用第一个 INSERT 自动生成的 ID

所有列分组的简写?

Clob 问题 - 将 clob 列拆分为多行

在给定列中具有特定值的行与 SQL 中的总行数的比率