我想在Teradata SQL / MACRO或PROCEDURE中执行此操作:
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)
主要原因:
表2非常大(10亿条记录)。
完全连接需要太多内存,我们需要 创建一个包含不相交ID列表的表table3 并在此列表上进行迭代。
但是,不确定如何更正此宏。