SQL Developer-基于不同ID更新/插入不同表中的列总和
业余SQL编写器在基于现有表的值构建表时遇到问题。 每次使用服务时,主表都会记录一条ID为的记录。每个用户的ID保持不变,但会在使用过程中重复跟踪相关信息。该表包含约200万条记录和20k个不同的ID *示例-SQL Developer-基于不同ID更新/插入不同表中的列总和,sql,sql-update,oracle-sqldeveloper,sql-insert,Sql,Sql Update,Oracle Sqldeveloper,Sql Insert,业余SQL编写器在基于现有表的值构建表时遇到问题。 每次使用服务时,主表都会记录一条ID为的记录。每个用户的ID保持不变,但会在使用过程中重复跟踪相关信息。该表包含约200万条记录和20k个不同的ID *示例- 用户ID |已用金额 用户_1998| 9GB, 用户_1999| 4GB, 用户_1999 | 1GB, 用户| 1999 | 0.5 GB* 对于新表,我们希望创建一个列,该列根据不同的ID汇总使用情况并进行组织 目标- 身份证件总使用量 用户_1998-9GB 用户_1999-5
用户ID |已用金额 用户_1998| 9GB,
用户_1999| 4GB,
用户_1999 | 1GB,
用户| 1999 | 0.5 GB* 对于新表,我们希望创建一个列,该列根据不同的ID汇总使用情况并进行组织
- 目标-
身份证件总使用量
用户_1998-9GB
用户_1999-5.5GB
UPDATE ml_draft
SET true_usage = (
SELECT SUM(true_usage)
FROM table2 t2
INNER JOIN ml_draft ON
ml_draft.subscription_id = t2.subscription_id);
如果有任何其他细节需要补充,请告诉我。错误各不相同您需要相关子查询。因此,不需要在子查询中使用JOIN
:
UPDATE ml_draft d
SET true_usage = (SELECT SUM(t2.true_usage)
FROM table2 t2
WHERE d.subscription_id = t2.subscription_id
);
为了提高性能,您需要在
表2(订阅id,真实用法)
上建立索引。我相信这是可行的,但是SQL一直超时……目前正在研究连接池。命令行错误:97列:1错误报告-SQL错误:关闭连接,不确定这是否会更改任何内容,但主表中没有true_usage列。仅限该特定会话期间使用的数量。我不应该把SUM(真正的用法)放在表中,而应该把SUM(使用的金额)放在表中,以得到我想要的真正的用法