在 BigQuery 中创建具有重复嵌套列的表语句

mat*_*252 2 sql data-structures google-bigquery

我想创建一个包含 2 列的表:

  • name作为string
  • info作为重复结构包含:
    • key作为string
    • value作为float64

我可以用create table声明来做吗?

然后我想插入一条记录:

'John', [{'key': 'a', 'value': 0.7}, {'key': 'b', 'value': 0.8}, {'key': 'c', 'value': 1.2}]
Run Code Online (Sandbox Code Playgroud)

可以用insert into声明来完成吗?

Mik*_*ant 9

以下是 BigQuery 标准 SQL

1 - 创建表

CREATE TABLE dataset.newtable   
(   
  name STRING,   
  info ARRAY<STRUCT<key STRING, value FLOAT64>>   
)   
Run Code Online (Sandbox Code Playgroud)

2 - 插入数据

INSERT dataset.newtable   
VALUES ('John', [('a', 0.7), ('b', 0.8), ('c', 1.2)])   
Run Code Online (Sandbox Code Playgroud)

注意:上述操作可以一次性完成,如下例所示

CREATE TABLE dataset.newtable AS
SELECT 'John' AS name, [STRUCT<key STRING, value FLOAT64>('a', 0.7), ('b', 0.8), ('c', 1.2)] info
Run Code Online (Sandbox Code Playgroud)