0

我想在 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)

主要原因 :

table2 非常庞大(10 亿条记录)。

全连接需要太多内存,我们需要创建一个表 table3 包含不相交的 id 列表并在此列表上迭代。

但是,我不确定如何纠正这个 MACRO 以使其正确。

4

0 回答 0