Здесь у меня есть задача IMPALA SQL, может кто-нибудь помочь мне решить ее, пожалуйста
Есть таблица с тремя столбцами AB и C. Есть три типа значений: child в столбце A;ребенок / родитель в столбцах A и C;и владелец в столбце B.
Значение IF появляется в столбце C, затем оно является родительским значением для другого значения в той же строке в столбце A, и оно также живет в столбце A Swell (как дочерний элемент).
Существует несколько уровней дочерних и родительских элементов (дочерний элемент для одного значения может быть родительским для другого).
Все дочерние и родительские значения находятся вместе в столбце A;
Владельцы живут только в столбце B;
Дочерняя родительская цепочка заканчивается, когда появляется владелец (в столбце B).
Мне нужно повернуть существующую таблицу так, чтобы раскрыть каждую цепочку вотдельный ряд
Ребенок, родитель-ребенок 1, родитель-ребенок 2, родитель-ребенок 3, владелец.
см. 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 «кольцевых колец» перед владельцем