将数据从另一 table 的一列插入到相同 table 的多列中

Inserting data into multiple columns of same table from one column of another table

我有一个 table WCR (l,j,W,C,R),其中包含以下条目。这里,l,j 是主键。

我必须将 WCRC 列中的数据插入到另一个 table C(l,C1,C2) 中,其中 l 是主键。 C table 将如下 -

对于每个 lj=1 将插入 C1j=2 将插入 C2。 但我不能一概而论。

我试过像-

这样的语句
INSERT INTO C 
SELECT 1, 
C FROM WCR WHERE j=1, 
C FROM WCR WHERE j=2;

和 Insert 语句中的子查询,如 -

 INSERT INTO C 
 VALUES (1, 
         SELECT C FROM WCR WHERE j=1, 
         SELECT C FROM WCR WHERE j=2);

但是其中 none 可以在 Vertica 中使用,因为它不支持 INSERT 语句中的子查询并且第一个无效。如何有效地将值插入 C?

一种方法使用 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;