Я пытаюсь обновить недавно добавленный столбец (columnG
) в таблице с именем TABLE1
.
Чтобы заполнить этот новый столбец, я присоединяюсь к таблице подробностей с именем TABLE2
, которая имеет columnG
в нем.
Проблема, с которой я сталкиваюсь, заключается в том, что некоторые записи из TABLE1
будут дублироваться после присоединения к TABLE2
из-за отсутствия уникальности при согласовании TABLE1.columnZ=TABLE2.columnZ AND TABLE2.columnB = TABLE1.columnB
.
Пока я хотел бы просто обновить один столбец, который изначально находится в TABLE1
до того, как произойдет логическое c с TABLE2
, поэтому я добавил квалифицированную часть row_number()
где он разделяется на уникальные столбцы первичного индекса TABLE1
.
Когда я запускаю обновление, оно истекает и говорит, что у меня закончилось место в буфере и я ничего не обновлю! Я хотел бы посмотреть, как оптимизировать этот запрос или что мне нужно изменить, чтобы внести этот столбец.
UPDATE table1
FROM (
SELECT columna, columnb, columnc, columnd, columne, columnf
FROM table1
QUALIFY ROW_NUMBER() OVER (
PARTITION BY columna, columnb, columnc, columnd, columne, columnf
ORDER BY columna, columnb, columnc, columnd, columne, columnf
) = 1
) dup
SET columng = table2.columng
WHERE table1.columnz = table2.columnz
AND table2.columnb = table1.columnb
AND table2.columnm = 'N'
AND table2.comlunn = 'N'
AND table2.columnl = 'Y'
AND table1.columnz IS NOT NULL;