2017-09-10 80 views
0

我有一個包含以下條目的表「WCR(l,j,W,C,R)」。這裏,l和j是主鍵。將數據插入到另一個表的一列中的同一表的多個列中

enter image description here

我不得不從WCR的列C的數據插入到另一個表C(L,C1,C2),其中l是主鍵。與c表將如下 -

enter image description here

對於每個升,J = 1將被插在C1,和j = 2將被插入到C2。 但我不能概括查詢。

我試圖像報表 -

Insert into C Select 1, C from WCR where j=1, C from WCR where j=2; 

和子查詢中插入語句一樣 -

Insert into C Values (1, Select C from WCR where j=1, Select C from WCR where j=2); 

但他們都不在Vertica的工作,因爲它不支持子查詢的Insert語句和第一個是無效的。我如何有效地將值插入到C?

回答

2

一種方法使用join

Insert into C(l, c1, c2) 
    select wcr1.l, wcr1.c, wcr2.c 
    from wcr wcr1 join 
     wcr wcr2 
     on wcr1.l = wcr2.l and wcr1.j = 1 and wcr2.j = 2; 

另一種方法使用條件彙總:

insert into c(l, c1, c2) 
    select l, max(case when j = 1 then c end) as c1, max(case when j = 2 then c end) 
    from wcr 
    group by l; 
+0

謝謝。我嘗試了第一個聲明。我知道它是一個錯字,在第二行中,它應該是「select wcr1.l」,而不是「select wcr1.j」。 第二個完美的作品。 – user3503711

相關問題