例えば、注文単位で複数商品を同時発注可能な場合、ordersテーブルを設計した場合は以下のような構造に。

フィールド名種類モード
idSTRINGNULLABLE
created_timeTIMESTAMPNULLABLE
shohinsRECORDREPEATED
itemSTRINGREPEATED
priceINTEGERREPEATED

REPEATEDの項目をそのままSELECTしようとすると以下のようなエラーが出ます

SELECT
  id,
  created_time,
  item,
  price
FROM
  dataset.table
LIMIT 3

> Unrecognized name: items at [4:4]

対策としては、以下のようにREPEATEDになっている項目をUNNESTで指定してから、SELECTする

SELECT
  id,
  created_time,
  s.item,
  s.price
FROM
  dataset.table,
  UNNEST(shohins) AS s
LIMIT 3
idcreated_timeitemsprice
a1232023-08-01りんご300
a1232023-08-01みかん400
a1232023-08-03バナナ200

おすすめの記事