曾经作过类似的,大致方法如下,可以提高效率
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.   

    谢谢,请教一下: "WHERE B.[..]=A.[..]"这句话是不是写错了,B就是A表出来的,是不是应该
    B.group_id = C.group_id  还是A.group_id = C.group_id?再次谢谢
      

  2.   

    按理说直接写在update里面,应该是最快的,
    因为update里面也有游标,不过是oracle本身为了
    更新数据而建的,
    我觉得你的那句更新语句速度应该很快的吧?
    在group_temp表上增加字段group_id的索引