Сохранить результаты BigQuery в массив - PullRequest
0 голосов
/ 13 марта 2020

У меня есть запрос, который выглядит следующим образом

SELECT ids FROM `table_name`

Наборы результатов следующие:

| ids |
|-----|
| 1   |
| 2   |
| 3   |

Мне нужно сохранить этот набор результатов в массив, чтобы я мог позже Я oop над этим. Определение массива вручную не вариант, так как мой набор результатов со временем будет увеличиваться, добавляя 4, 5, 6 и т. Д. c. Вот почему я не могу просто использовать:

SELECT GENERATE_ARRAY(1, 2, 3) AS my_array

Я пытался

SELECT GENERATE_ARRAY(SELECT ids FROM `table_name`) AS my_array

, но это не работает.

Я в основном ищу обратное UNNEST.

1 Ответ

3 голосов
/ 13 марта 2020

Ниже для BigQuery Standard SQL - обычно ARRAY_AGG может использоваться как обратное значение UNNEST

#standardSQL
SELECT ARRAY_AGG(ids) ids
FROM `project.dataset.table`

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

#standardSQL
WITH `project.dataset.table` AS (
  SELECT 1 ids UNION ALL
  SELECT 2 UNION ALL
  SELECT 3 
)
SELECT ARRAY_AGG(ids) ids
FROM `project.dataset.table`

с результатом

Row ids  
1   1    
    2    
    3    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...