by 훈훈후니 [Oracle 기초] insert [2015.06.22 21:51:44]
안녕하세요?
다름이 아니라 다음과 같은 insert를 하고 싶은데요.
예를 들어 select a, b, c from t; 라는 문장이 있을 때
a,b 로 group by 한 건 tab1에 넣고 그냥 a,b,c 는 tab2에 insert를 하려고 합니다.
해당 select query의 결과 row가 1억건이라고 가정하면 select를 2번 날리게 되면 2억건을 access해야 해서요
혹시 방법이 없을가요?? 감사합니다.
1 2 3 4 5 6 7 8 9 | INSERT ALL WHEN gp = 1 THEN INTO tab1(a, b) VALUES (a, b) ELSE INTO tab2(a, b, c) VALUES (a, b, c) SELECT GROUPING (c) gp , a, b, c FROM t GROUP BY a, b, ROLLUP ((c, ROWNUM)) ; |
1 2 3 4 5 6 7 | INSERT ALL WHEN rn = 1 THEN INTO tab1(a, b) VALUES (a, b) WHEN 1 = 1 THEN INTO tab2(a, b, c) VALUES (a, b, c) SELECT ROW_NUMBER() OVER(PARTITION BY a, b ORDER BY c) rn , a, b, c FROM t ; |