【发布时间】:2021-11-06 09:24:22
【问题描述】:
所以我有一张这样的桌子:
ID VALUE KEY DATE USER
001 ["a"] group1 2021-01-01 212
002 [] group2 2021-01-01 212
003 ["a","c"] group1 2021-01-02 212
004 ["apple", "pear"] group3 2021-01-02 211
我想重组这些数据,使每个列表元素都成为自己的行。如果VALUE 是一个空列表,则期望它不会出现在最终数据集中。
最终结果应该是:
ID VALUE KEY DATE USER
001 "a" group1 2021-01-01 212
003 "a" group1 2021-01-02 212
003 "c" group1 2021-01-02 212
004 "apple" group3 2021-01-02 211
004 "pear" group3 2021-01-02 211
我认为在 Snowflake 中使用 FLATTEN() 应该可以在这里工作,但我似乎无法理解。
【问题讨论】:
-
VALUE 列是数组还是字符串?
-
VARCHAR(16777216)又名字符串 -
好的。除非有人打败我,否则我会更新我的答案。
-
很好,你的很接近;字符串转表的作用是什么?
-
如果 VALUE 列被定义为数组,则上一个答案有效。 split_to_table 表函数更适合将分隔的字符串转换为行。
标签: sql snowflake-cloud-data-platform flatten