将 2 个独立表插入到 BigQuery 嵌套表中

insert into BigQuery nested tables from 2 individual tables

提问人:Gerard Ayissi 提问时间:10/5/2023 最后编辑:Gerard Ayissi 更新时间:10/5/2023 访问量:54

问:

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

单个表: USERS(用户 ID、名字、姓氏)

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

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

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

寻找类似 INSERT INTO MEMBERS (userid, firstname, lastname, addresses) SELECT userid, firstname, lastname, (地址的数组结构)

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

数组 结构 google-bigquery 嵌套

评论


答:

0赞 sarath.mec 10/5/2023 #1

使用以下查询

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;