从 2 个单独的表插入 BigQuery 嵌套表

问题描述 投票:0回答:1

我有 2 个单独的表,尝试使用 insert ... select 语句插入到嵌套的第三个表(ARRAY 和 STRUCT)中

个别表格: 用户(用户 ID、名字、姓氏)

地址(用户 ID、街道、城市、州)

嵌套表: 成员(用户 ID、名字、姓氏、地址)

每个用户可以有多个地址,key是userid

寻找类似 INSERT INTO MEMBERS(用户 ID、名字、姓氏、地址)的内容 SELECT 用户 ID、名字、姓氏(地址的数组结构)

我希望所有用户都插入到嵌套表中,并且每个用户可以有多个地址。

arrays struct google-bigquery nested
1个回答
0
投票

使用下面的查询

ARRAY_AGG 是分组函数,用于将多个 STRUCT 记录分组为重复结构

INSERT INTO MEMBERS 
  (userid, firstname, lastname, addresses)
SELECT
  u.userid,
  u.firstname,
  u.lastname,
  ARRAY_AGG(STRUCT(m.street, m.city, m.state)) AS addresses
FROM USERS u
     LEFT JOIN MEMBERS m
       ON (m.userid = u.userid)
GROUP BY
  u.userid,
  u.firstname,
  u.lastname;
© www.soinside.com 2019 - 2024. All rights reserved.