将 BigQuery 结果保存到数组

Dan*_*iel 2 arrays google-bigquery

我有一个如下所示的查询

SELECT ids FROM `table_name`
Run Code Online (Sandbox Code Playgroud)

结果集如下

| ids |
|-----|
| 1   |
| 2   |
| 3   |
Run Code Online (Sandbox Code Playgroud)

我需要将此结果集保存到 an 中ARRAY,以便稍后可以对其进行循环。手动定义数组不是一个选项,因为我的结果集会随着时间的推移而变得更大,添加 4、5、6 等。这就是为什么我不能只使用:

| ids |
|-----|
| 1   |
| 2   |
| 3   |
Run Code Online (Sandbox Code Playgroud)

我试过

SELECT GENERATE_ARRAY(1, 2, 3) AS my_array
Run Code Online (Sandbox Code Playgroud)

但它不起作用。

我基本上是在寻找 的逆UNNEST

Mik*_*ant 6

以下是 BigQuery 标准 SQL - 通常ARRAY_AGG可用作UNNEST

#standardSQL
SELECT ARRAY_AGG(ids) ids
FROM `project.dataset.table`
Run Code Online (Sandbox Code Playgroud)

您可以使用问题中的示例数据来测试、玩上面的内容,如下例所示

#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`
Run Code Online (Sandbox Code Playgroud)

有结果

Row ids  
1   1    
    2    
    3    
Run Code Online (Sandbox Code Playgroud)