BigQuery - 使用 INSERT INTO 将数据从一个嵌套表复制到另一个嵌套表

Nic*_*ove 2 sql google-bigquery google-cloud-platform

帮助一个客户。我正在尝试将一个嵌套的 BigQuery 表复制到另一个嵌套表中,但遇到以下错误:“语法错误:预期为“)”或“,”但得到“。”

询问:

  INSERT INTO `<GCP_PROJECT_NAME>.Test_Tables.Nested_Person_Table2` (id,
    first_name,
    last_name,
    dob,
    address.status,
    address.address,
    address.city,
    address.state,
    address.zip,
    address.numberOfYears)
SELECT
  id,
  first_name,
  last_name,
  dob,
  address.status,
  address.address,
  address.city,
  address.state,
  address.zip,
  address.numberOfYears
FROM
  `<GCP_PROJECT_NAME>.Test_Tables.Nested_Person_Table`

Run Code Online (Sandbox Code Playgroud)

Nic*_*ove 10

下面回答。希望这也能帮助别人!

INSERT INTO
  `<GCP_PROJECT_NAME>.Test_Tables.Nested_Person_Table2` 
    (id,
    first_name,
    last_name,
    dob,
    addresses)
SELECT
  id,
  first_name,
  last_name,
  dob,
  ARRAY_AGG(STRUCT(a1.status,
      a1.address,
      a1.city,
      a1.state,
      a1.zip,
      a1.numberOfYears)) AS addresses
FROM
  `<GCP_PROJECT_NAME>.Test_Tables.Nested_Person_Table`,
  UNNEST(addresses) AS a1
GROUP BY
  id,
  first_name,
  last_name,
  dob
Run Code Online (Sandbox Code Playgroud)