Как зациклить соединение между двумя столбцами одной таблицы, чтобы получить последнее совпадающее значение в новом столбце - PullRequest
0 голосов
/ 22 мая 2019

Свернутая таблица с двумя столбцами: Column_A и Column_B.На основе этой таблицы должна быть создана другая таблица, в которой Column_A остается неизменным, но изменяется столбец B.

Column_A | Column_B                      Column_A  |  New_Column_B
--------------------                     --------------------------
   1     |    3                              1     |     9
   2     |    8                              2     |     19
   3     |    9                ==>           3     |     9
   5     |    12                             5     |     12
   8     |    17                             8     |     19
   17    |    19                             17    |     19

Для каждой строки мы проверяем Column_B, присутствует ли она в Column_A?
Да?посмотрите на Column_B, присутствует ли он в Column_A?
Да, .... значение из Column_B добавляется в новый столбец для последнего совпадения между Column_B и Column_A.

В column_A + нет дубликатовВсего около 1 миллиона строк.Какой самый эффективный способ написать это в SQL для Netezza?

Я попробовал запрос ниже, он работает для одного случая, когда B соответствует A. Но не для Netezza.

SELECT Column_A, 
coalesce(
(
 SELECT Column_B
 FROM Collapsed c2 
 WHERE c1.Column_B=c2.Column_A
),Column_B
) as B
FROM Collapsed c1;
...