Разделить строки, разделенные запятыми, на строки с помощью Bigquery - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь разбить столбец, содержащий строки, разделенные запятыми, на строки

Вход -

enter image description here

Ожидаемый результат -

enter image description here

Я пытался использовать REGEXP_EXTRACT_ALL, но не смог получить вышеуказанный результат

1 Ответ

2 голосов
/ 28 мая 2020

Ниже для BigQuery Standard SQL

#standardSQL
SELECT * EXCEPT(c) REPLACE(c AS country)
FROM `project.dataset.table`,
UNNEST(SPLIT(country)) c   

Если применить к образцу данных из вашего вопроса, как в примере ниже

#standardSQL
WITH `project.dataset.table` AS (
  SELECT 'asia' region, 'india,china,japan' country, 100 revenue, 0.3 weight UNION ALL
  SELECT 'europe', 'uk,france,germany,italy', 75, 0.25
)
SELECT * EXCEPT(c) REPLACE(c AS country)
FROM `project.dataset.table`,
UNNEST(SPLIT(country)) c   

, результат будет

Row region  country revenue weight   
1   asia    india   100     0.3  
2   asia    china   100     0.3  
3   asia    japan   100     0.3  
4   europe  uk      75      0.25     
5   europe  france  75      0.25     
6   europe  germany 75      0.25     
7   europe  italy   75      0.25     
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...