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
。
以下是 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)