ここhttps://cloud.google.com/bigquery/sql-reference/dml-syntaxにある例に従って、テーブルの第 3 レベル (specifications.dimensions) を次のように更新できる方法を考え出しました。
UPDATE sd97dwo.DetailedInventory
SET specifications.dimensions =
STRUCT<depth FLOAT64, height FLOAT64, width FLOAT64>(1, 2, 3)
WHERE
product like '%washer%'
AND EXISTS(select 1 from unnest(comments) as c where c.comment like '%comment%')
私たちが今やろうとしているのは、同じディメンション構造体にレコードを追加するようにテーブルを更新することです。しかし、私たちが試みているさまざまな方法は成功していません。誰かがアイデアを持っているかどうかを見たかった. 最も近いものは以下でしたが、もちろん、specifications.dimensions のすべてのレコードを (複数の結果として) 返すため、「スカラー サブクエリが複数の要素を生成しました」というエラーが発生します。
UPDATE sd97dwo.DetailedInventory
SET specifications.dimensions
= (SELECT specifications.dimensions
UNION ALL
SELECT STRUCT<depth FLOAT64, height FLOAT64, width FLOAT64>(4.0,5.0,6.0))
WHERE
product like '%washer%'
AND EXISTS(select 1 from unnest(comments) as c where c.comment like '%comment%')