join配置单元表:在另一个表的列中加载多行的值

hvvq6cgz  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(266)

我在配置单元中有两个表:第一个表(表1):

id        val1        val2        val3
1         NULL        NULL        NULL
1         NULL        NULL        NULL
1         NULL        NULL        NULL
1         NULL        NULL        NULL

第二张表(表2):

id        val        row_number
1         x          1
1         y          2
1         z          3

我想把这些表连接起来,这样最终的结果就像:

id        val1        val2        val3
1         x           y           z
1         x           y           z
1         x           y           z
1         x           y           z

可以确定的是,在表2中,对于一个特定的id,将正好有3条记录,并且每个值(列“val”)必须加载到表1中该id的所有行的列val1、val2、val3中。

ecbunoof

ecbunoof1#

你似乎想要:

select t1.id, t21.val as val1, t22.val as val2, t23.val as val3
from t1 join
     t2 t21
     on t21.id = t1.id and t21.row_number = 1 join
     t2 t22
     on t22.id = t1.id and t22.row_number = 2 join
     t2 t23
     on t23.id = t1.id and t23.row_number = 3;

相关问题