sql - 根据 id 列评估两个表中的 int 列,更新其总和
问题描述
我的 Postgres DB 中有以下两个表。
表格1:
car_id Price
176 0
39 1
86 4
2 0
表 2:
car_id Price
176 2
39 1
86 5
2 0
我想根据 car_id 上的匹配比较这两个表,并总结价格列并用新添加的总和更新表 1。
更新后的表1应该有这个输出:
car_id Price
176 2
39 2
86 9
2 0
这是我尝试的:
UPDATE table1
SET price = (
SELECT table2.price
FROM table2
WHERE table2.car_id = table1.car_id
)
WHERE exists
(
SELECT table2.price
FROM table2
WHERE table2.car_id = table1.car_id
)
我知道这只是更新 table1 中的值以反映 table2,我将如何获取价格总和并用新的总和更新 table1?
解决方案
使用更新连接:
UPDATE table1 t1
SET Price = Price + t2.Price
FROM table2 t2
WHERE t1.car_id = t2.car_id;
推荐阅读
- html - 如何从照片中删除缩进(带照片的块)?
- shell - 如何在管道分隔文件中使用 awk 命令从文件中仅获取奇数条目?
- workflow - 由于对作业完成的冗长顺序检查,Snakemake 处理大型工作流程缓慢?>100x 减速
- python-3.x - Odoo 11 无法在 SaaS 计划中创建模板数据库
- forms - symfony 3.4 中的多重过滤器
- python - RenderContext spritesheet 动画
- cocoa - 使用 FileAttributeKey.posixPermissions 与使用 stat -f %A 有何不同?
- c# - c#:带有多个条件的字典的Linq
- tensorflow - 在 tensorflow element-wise 中重复/平铺数据
- python - cv2.warpAffine 在更高维度的输入上失败