在Teradata SQL中用于循环

时间:2018-08-30 06:48:43

标签: teradata teradata-sql-assistant

我想在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 并在此列表上进行迭代。

但是,不确定如何更正此宏。

0 个答案:

没有答案