google-bigquery - 选择嵌套数据结构中的条目
问题描述
我在 BigQuery 中有几个临时表(通过 WITH 语句创建),并希望在结果语句中将它们组合为嵌套数据结构。
这是一个示例,最终选择显然不起作用:
with data as (
select 10 as points UNION ALL
select 12 as points UNION ALL
select 20 as points
),
stuff as (
select 1 as foo, 2 as bar
)
select
foo, bar,
(select * from data) as subTable
from stuff
我想生成如下所示的输出(为简洁起见,json 表示法):
{
foo: 1,
bar: 2,
subTable: [
{points: 10}, {points: 12}, {points: 20}
]
}
我怎样才能做到这一点,有可能吗?
解决方案
好吧,我自己想通了。有两个主要成分:ARRAY
和SELECT AS STRUCT
select
foo, bar,
ARRAY(select as struct * from data) as subTable
from stuff
函数调用从结果中ARRAY
创建错误,SELECT AS STRUCT
将结果转换为嵌套在内部的结构。
推荐阅读
- python - 如何使用 re.sub 删除数字
- javascript - 在 Firebase 中创建用户并同时在 Angular 中将其数据保存在 Firestore 中
- node.js - nodejs和babel:从未定义的结果中导入
- javascript - 无法在 window.print() 上使用 CSS
- java - XML 签名验证失败
- javascript - 如果调用funtionA Insider funtionB,会调用functionA吗?编译级别发生了什么?
- swift - 是否可以在命令行模式下运行仅限 Swift 的 Cocoa 应用程序
- xml - 如何将xsd元素名称动态定义为复杂类型
- javascript - 如何将子函数调用到主函数中
- javascript - 绑定日历中选定日期的 Angular 事件是什么?