0
나는 두 개의 테이블 A (i, j, k)와 B (m, n)을 가지고있다.Vertica에서 조인하지 않고 다른 테이블에서 하나의 테이블을 업데이트 할 수 있습니까?
테이블 A에서 sum (j)을 취하여 B 테이블의 'm'열을 업데이트하려고합니다. Vertica에서 할 수 있습니까?
다음 코드는 Teradata에 사용할 수 있지만 Vertica는 이러한 유연성을 갖추고 있습니까?
는Update B from (select sum(j) as m from A)a1 set m=a1.m;
이것은 약간 특이한 구문 인 User3503711입니다. 그래서 당신이 기대하는 바를 파악하려고합니다. UPDATE
Teradata SQL 구문입니다. 비슷한 문법이 게시되어 있습니다. (https://stackoverflow.com/questions/10987152/teradata-update-table-from-select-statement). 예, 그게 내가하고 싶은 일입니다. 표 A의 합계 (j)가 표 B의 m 열에 복사됩니다. - @marcothesane – user3503711
답변
테라 데이타 SQL 구문이 Vertica의 작동하지 않습니다,하지만, 다음 쿼리는 같은 일을 수행해야합니다
출처
2017-09-14 07:29:45
당신의 테이블의 크기에 따라,이 효율적인 방법이 될 수 없습니다 데이터를 업데이트합니다. Vertical은 WORM (여러 번 쓰고 한번 읽음) 저장소이며 업데이트 또는 삭제에 최적화되어 있지 않습니다.
다른 방법은 먼저 대상 테이블의 데이터를 임시 테이블이 아닌 다른 중간 테이블로 일시적으로 이동하는 것입니다. 그런 다음 다른 테이블을 사용하여 원하는 결과를 생성하는 조인 쿼리를 작성하고 마지막으로 해당 조인 쿼리와 함께
export table
을 사용하십시오. 마지막으로 중간 표를 놓습니다. 물론 이것은 당신이 당신의 업데이트 로직에 적합한 방식으로 당신의 테이블을 분할했다고 가정하고있다.출처
2017-09-16 12:39:38 victtim
관련 문제