postgresql - 通过计算另一个表中的数据来更新列
问题描述
我有两个表,比如说 A 和 B,并且想通过将表 B 中的 column2 与表 A column2 进行比较来计算表 B 中的结果,并在表 A column1 中更新它们。
我正在使用此处显示的脚本,但这需要很长时间,所以如果有人可以提供替代/更好和更快的选项/脚本,我将不胜感激
UPDATE tableA
SET tableA.column1 = (SELECT COUNT(*)
FROM tableB
WHERE tableA.column2 = tableB.column2)
解决方案
使用专有UPDATE ... FROM
来执行可以不是嵌套循环的连接:
UPDATE tableA SET tableA.column1 = tbc.count
FROM (SELECT column2,
count(*) AS count
FROM tableB
GROUP BY column2) AS tbc
WHERE tableA.column2 = tbc.column2;
推荐阅读
- python - 如何构造属性在某个范围内的 Python pandas 系列对象
- java - 如何将对象转换为仅在运行时已知的类型?
- c# - 第二次点击后页面是否刷新?
- mysql - 如何使用 MySQL 子查询和 GROUP BY
- android - Delphi 通过 AIDL 连接打印服务
- ruby-on-rails - 查找数组的每个子数组包含的值
- python-3.x - 将输入字符串分成两个偶数部分或长度为奇数时,将中间字符留在第一部分。(仅布尔值)
- c++ - 运行简单的 .oct 文件时 Octave 崩溃,我的代码有什么问题?
- .net - 图像出现在预览中,但在我启动程序时不会出现
- javascript - 如何绑定以 url 表示的 api 数据?