在雪花中使用展平逻辑

Using flatten logic in snowflake

在下面的查询中,我需要根据 TID 列的公共列加入另一个名为 table_2 的 table。我需要在 WHERE 子句中添加一些条件,为此我需要加入 table_2.

如何实现?

  SELECT id,LISTAGG(DISTINCT apn_no,';')WITHIN GROUP(ORDER BY apn_no) as apn_no
   from
   (SELECT id,
      CASE WHEN INDEX = 1 AND item_list!='' THEN item_list END AS apn_no
     FROM (
        SELECT id,index,d.value::string AS item_list FROM (
                        SELECT id,c.value::string AS item_list
                          FROM table_1,LATERAL flatten(INPUT=>split(p_list, ',')) c 
                      ), LATERAL flatten(INPUT=>split(item_list, ';')) d
       )where item_list is not null
     )
   GROUP BY id

这是直接从文档中剪切和粘贴的 Snowflake SQL grammar。可能是时候做一些事情了 learning/reading.

JOIN 在 FROM 之后

[ WITH ... ]
SELECT
   [ TOP <n> ]
   ...
[ FROM ...
   [ AT | BEFORE ... ]
   [ CHANGES ... ]
   [ CONNECT BY ... ]
   [ JOIN ... ]
   [ MATCH_RECOGNIZE ... ]
   [ PIVOT | UNPIVOT ... ]
   [ VALUES ... ]
   [ SAMPLE ... ] ]
[ WHERE ... ]
[ GROUP BY ...
   [ HAVING ... ] ]
[ QUALIFY ... ]
[ ORDER BY ... ]
[ LIMIT ... ]