タイプARRAY <STRUCT <productSKU STRING、v2ProductName STRING、v2ProductCategory STRING、... >>の値のフィールドproductQuantityにアクセスできません。

xxyb

BigQueryを使用してGoogleAnalyticsからデータをクエリしようとしています。実行する前に、このエラーが発生します。

Cannot access field productQuantity on a value with type ARRAY<STRUCT<productSKU STRING, v2ProductName STRING, v2ProductCategory STRING, ...>>

私はそれをグーグルで検索しました、そして私はすでにUNNESTいくつかの他の答えで提案されているように機能を使用しています。何が悪いのかわかりません。

また、Google Analyticsのさまざまなテーブルからクエリを実行しており、データは日付別に保存されています。コードを繰り返さずに特定の時間枠からクエリを実行できる方法はありますか?

以下の私のコードを参照してください:

#standardSQL
SELECT
  date,
  hits.transaction.transactionId,
  hits.product.productQuantity
FROM
  `XXX1`,
  UNNEST(hits) AS hits,
  UNNEST(hits.product.productQuantity) AS prod
GROUP BY
  date
UNION ALL
SELECT
  date,
  hits.transaction.transactionId,
  hits.product.productQuantity
FROM
  `XXX2` UNNEST(hits) AS hits,
  UNNEST(hits.product.productQuantity) AS prod
GROUP BY
  date
UNION ALL
SELECT
  date,
  hits.transaction.transactionId,
  hits.product.productQuantity
FROM
  `XXX3` UNNEST(hits) AS hits,
  UNNEST(hits.product.productQuantity) AS prod
GROUP BY
  date
UNION ALL
SELECT
  date,
  hits.transaction.transactionId,
  hits.product.productQuantity
FROM
  `XXX4` UNNEST(hits) AS hits,
  UNNEST(hits.product.productQuantity) AS prod
GROUP BY
  date
UNION ALL
SELECT
  date,
  hits.transaction.transactionId,
  hits.product.productQuantity
FROM
  `XXX5` UNNEST(hits) AS hits,
  UNNEST(hits.product.productQuantity) AS prod
GROUP BY
  date
UNION ALL
SELECT
  date,
  hits.transaction.transactionId,
  hits.product.productQuantity
FROM
  `XXX6` UNNEST(hits) AS hits,
  UNNEST(hits.product.productQuantity) AS prod
GROUP BY
  date
ミハイル・ベリヤント

タイプARRAY>の値のフィールドproductQuantityにアクセスできません

以下のアプローチを使用する必要があります

#standardSQL
SELECT
  date,
  hits.transaction.transactionId, 
  prod.productQuantity
FROM `XXX`,
UNNEST(hits) AS hits,
UNNEST(hits.product) AS prod

したがって、ご覧のproductQuantityとおり、ネストされていない「prod」を使用してアクセスします

注:GROUP BYを使用する場合は、selectステートメントでGROUP BYの一部ではないフィールドに集計関数を使用する必要があります-この例では、探している集計に適用する必要がある以下の2つのフィールドがありますそれでもGROUPBYが必要な場合

hits.transaction.transactionId, 
prod.productQuantity   

コードを繰り返さずに特定の時間枠からクエリを実行できる方法はありますか?

はい、これに_TABLE_SUFFIX使用できます

以下の例のように

#standardSQL
SELECT
  date,
  hits.transaction.transactionId, 
  prod.productQuantity
FROM `project.dataset.XXX*`,
UNNEST(hits) AS hits,
UNNEST(hits.product) AS prod   
WHERE _TABLE_SUFFIX BETWEEN '1' AND '6'

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ