在雪花中使用展平逻辑
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 ... ]
在下面的查询中,我需要根据 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 ... ]