Я хотел бы сделать это в терадате SQL / MACRO или ПРОЦЕДУРА:
CREATE MACRO insertloop ( val1 VARCHAR( 1000)) AS
(
sublist_i = ' SELECT sublist from table3 '
FOR sublist_i in sublist :
INSERT INTO table5
SELECT t.id, t.address, sum(t.amount)
FROM table2 AS t
WHERE
t.id in sublist_i
AND t.address = :val1
GROUP BY t.id t.address
);
Пояснение:
table3 contains list of id (by block of 1000 id)
(12, 546, 999)
(45,789)
(970, 990, 123)
Основная причина:
table2 очень огромен (1 миллиард записей).
Полное соединение требует слишком много памяти, нам нужно
создать таблицу table3, содержащую непересекающийся список идентификаторов
и итерации по этому списку.
Но я не уверен, как исправить эту МАКРО, чтобы исправить.