Разделить одну строку на несколько строк на основе столбца с разделителями-запятыми - PullRequest
0 голосов
/ 27 июня 2018

У меня есть таблица, как показано ниже со столбцами 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

Если это поможет, я делаю это в Амазонке Афины (которая основана на presto). Я знаю, что Presto дает функцию для разделения строки в массив. Из presto документы :

split (строка, разделитель) → массив
Разбивает строку на разделитель и возвращает массив.

Хотя я не уверен, что делать дальше.

1 Ответ

0 голосов
/ 27 июня 2018

Использовать unnest в массиве, возвращаемом split.

SELECT a,split_b 
FROM tbl
CROSS JOIN UNNEST(SPLIT(b,',')) AS t (split_b)
...