我snowflake用来尝试基于两列存储行,如果该存储桶大小大于 1,那么我需要一些新列的值为 1,否则我会将其设置为 0。NTILE()除了我需要这是动态的。
我的表如下所示:
ARTICLE_ID USER_ID COUNTRY_NAME NUM_COUNTRIES NUM_AUTHORS
------------------------------------------------------------------------
30522143 ecf330d Singapore 1 4
30522143 86b0faa Singapore 1 4
30522143 d331b33 Singapore 1 4
30522143 d331b33 Singapore 1 4
------------------------------------------------------------------------
30522139 1d08cfd United States 2 3
30522139 ec9c065 Canada 2 3
30522139 a750bff United States 2 3
------------------------------------------------------------------------
23410385 1d08cfd United States 3 3
23410385 ec9c065 Mexico 3 3
23410385 a41b19c France 3 3
------------------------------------------------------------------------
30285132 d331b33 Chile 2 4
30285132 1d08cf2 Peru 2 4
30285132 a750bff Chile 2 4
30285132 d742bb5 Peru 2 4
------------------------------------------------------------------------
...
ARTICLE_ID那时我需要存储的两列是COUNTRY_NAME. 查看上表,如果我们取ARTICLE_ID 30522143,我们将有1bucket of,4 USER_ID因为它们都是,Singapore那么 valueHAS_REPEATED_COUNTRY将是 1。
在这种情况下,ARTICLE_ID 30522139我们将有两个子存储桶,一个用于United States包含2 USER_IDs,另一个子存储桶(Canada)包含1 USER_ID这将导致所有与关联的用户United States具有值,1并且与关联的唯一成员Canada具有值0in HAS_REPEATED_COUNTRY。
因此该表将类似于:
ARTICLE_ID USER_ID COUNTRY_NAME NUM_COUNTRIES NUM_AUTHORS HAS_REPEATED_COUNTRY
------------------------------------------------------------------------------------------------
30522143 ecf330d Singapore 1 4 1
30522143 86b0faa Singapore 1 4 1
30522143 d331b33 Singapore 1 4 1
30522143 d331b33 Singapore 1 4 1
------------------------------------------------------------------------------------------------
30522139 1d08cfd United States 2 3 1
30522139 ec9c065 Canada 2 3 0
30522139 a750bff United States 2 3 1
------------------------------------------------------------------------------------------------
23410385 1d08cfd United States 3 3 0
23410385 ec9c065 Mexico 3 3 0
23410385 a41b19c France 3 3 0
------------------------------------------------------------------------------------------------
30285132 d331b33 Chile 2 4 1
30285132 1d08cf2 Peru 2 4 1
30285132 a750bff Chile 2 4 1
30285132 d742bb5 Peru 2 4 1
------------------------------------------------------------------------------------------------
...
有没有办法从前者产生后者的表?