我有一个像下面这样的表,其中包含列A(int)和B(string):
A(int)
B(string)
A B 1 a,b,c 2 d,e 3 f,g,h
我想创建如下输出:
A B 1 a 1 b 1 c 2 d 2 e 3 f 3 g 3 h
如果有帮助,我将在Amazon Athena(基于presto)中进行此操作。我知道presto提供了将字符串拆分为数组的功能。从presto文档:
split(string,delimiter)array array 在定界符上分割字符串并返回一个数组。
虽然不确定如何从这里继续。
unnest在由返回的数组上使用split。
unnest
split
SELECT a,split_b FROM tbl CROSS JOIN UNNEST(SPLIT(b,',')) AS t (split_b)