曾经作过类似的,大致方法如下,可以提高效率
1、创建一个临时表T,结构与C相同
2、通过C与A的关系查询:如下
INSERT INTO T
(
SELECT C.[OTHER COL],B.NUM
FROM group_cde C
,(SELECT A.GROUP_ID,SUM(A.NUM) AS NUM
FROM group_temp A
GROUP BY GROUP_ID
) B
WHERE B.[..]=A.[..])
3、删除C表数据(或按条件)
4、把T表数据写入C表
1、创建一个临时表T,结构与C相同
2、通过C与A的关系查询:如下
INSERT INTO T
(
SELECT C.[OTHER COL],B.NUM
FROM group_cde C
,(SELECT A.GROUP_ID,SUM(A.NUM) AS NUM
FROM group_temp A
GROUP BY GROUP_ID
) B
WHERE B.[..]=A.[..])
3、删除C表数据(或按条件)
4、把T表数据写入C表
B.group_id = C.group_id 还是A.group_id = C.group_id?再次谢谢
因为update里面也有游标,不过是oracle本身为了
更新数据而建的,
我觉得你的那句更新语句速度应该很快的吧?
在group_temp表上增加字段group_id的索引