在BigQuery中使用重复的嵌套列创建表语句

时间:2019-11-13 13:27:32

标签: sql data-structures google-bigquery

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

  • namestring
  • info作为重复结构,包含:
    • keystring
    • valuefloat64

我可以使用create table语句吗?

然后我要插入一条记录:

'John', [{'key': 'a', 'value': 0.7}, {'key': 'b', 'value': 0.8}, {'key': 'c', 'value': 1.2}]

可以使用insert into语句吗?

2 个答案:

答案 0 :(得分:3)

以下是用于BigQuery标准SQL

1-创建表

CREATE TABLE dataset.newtable   
(   
  name STRING,   
  info ARRAY<STRUCT<key STRING, value FLOAT64>>   
)   

2-插入数据

INSERT dataset.newtable   
VALUES ('John', [('a', 0.7), ('b', 0.8), ('c', 1.2)])   

注意:可以像下面的示例一样一次性完成“ ”操作

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

答案 1 :(得分:1)

可能您想创建一种Master / Details结构。假设您使用的是关系数据库,建议不要使用单个表,而应使用两个单独的表。

第一个表格(我们可以将其命名为“人”)

  • id作为int64(主键)
  • namestring

第二张表(我们可以将其命名为“信息”)

  • id作为int64(主键)
  • keystring
  • valueint64
  • personidint64(Person.id上的外键)

因此您可以insert into“信息”表。