IMPALA SQL(数据透视表)

时间:2019-02-27 08:18:58

标签: sql impala

这里我有IMPALA SQL任务,有人可以帮我解决吗

有一个包含三列A B和C的表。 值有三种类型:A列中的child; A / C栏中的孩子/父母;和所有者在B列中。

IF值出现在C列中,那么它是A列同一行中其他值的父值,并且它也以膨胀形式(作为子对象)存在于A列中。

子级和父级有多个级别(一个值的子级可以是另一个值的父级)。

所有子项和父项值一起生活在A列中;

所有者仅居住在B列中;

当所有者出现时(在B列中),儿童父链结束。

我需要对现有表进行透视,以显示单独行中的每个链

孩子,父子1,父子2,父子3,所有者。

see pic_1

我试图用LEFT JOINS解决这个问题

SELECT a.A, a.B, a.C,    b.A, b.B, b.C,   c.A, c.B, c.C
FROM  
table1 a 
LEFT JOIN
table1 b
ON a.C = b.A
LEFT JOIN
table1 c 
ON b.C = c.A

它可以工作,但这是一个糟糕的解决方案,因为我们不知道可以有多少个级别的“亲子”。一些连锁店只有三个父母/孩子 值,其中一些值在拥有者之前有50个“链环”

0 个答案:

没有答案