检索一个产品的多个 Google 分析行是一个产品范围的 customDimension 值在 Google 大查询中不同

Retrieving multiple Google Analytics rows for one product were a product scoped customDimension value differ in Google Big Query

我有以下 Google 分析数据:

GA字段说明:

产品是 hits.product.v2ProductName

ProductSKU 是 hits.product.productSKU

产品长 SKU (CD) 是产品范围维度,索引为 13。

示例数据:

产品、产品 SKU、产品长 SKU (CD)

Liadalen turbukse 女士,307500,10223990074006

Liadalen turbukse 女士,307500,10223990001009

Liadalen turbukse 女士,307500,10223990074010

使用下面的查询(受YUHUI启发)我只能获得一行是具有最大Product Long SKU(CD)的MAX行。我无法全神贯注地思考如何在 BQ 中生成与我上面的示例一样的三行中的确切数据,但产品长 SKU (CD) 是变体吗?

SELECT
  p.productSKU,
  p.v2ProductName,
  MAX(IF(pcd.index = 13,
      pcd.value,
      NULL)) AS productCustomDimension13
FROM
  `59546646.ga_sessions_*`
  LEFT JOIN UNNEST(customDimensions) AS cd
  LEFT JOIN UNNEST(hits) AS h
  LEFT JOIN UNNEST(h.customDimensions) AS hcd
  LEFT JOIN UNNEST(h.product) AS p
  LEFT JOIN UNNEST(p.customDimensions) AS pcd
  WHERE
  _table_suffix BETWEEN FORMAT_DATE('%Y%m%d', DATE('2020-04-01')) AND FORMAT_DATE('%Y%m%d', DATE('2020-05-01'))
  AND h.eCommerceAction.action_type = "6"
  AND p.v2ProductName = "Liadalen turbukse dame"
GROUP BY
  p.productSKU,
  p.v2ProductName
ORDER BY 
  p.v2ProductName

我不知道你想要的确切输出,但如果你只想列出产品,你可以使用该查询:

SELECT
  p.productSKU,
  p.v2ProductName,
  (SELECT pcd.value FROM UNNEST(p.customDimensions) pcd where pcd.index = 13) AS productCustomDimension13
FROM `59546646.ga_sessions_*`
LEFT JOIN UNNEST(hits) AS h
LEFT JOIN UNNEST(h.product) AS p
WHERE
    _table_suffix BETWEEN FORMAT_DATE('%Y%m%d', DATE('2020-04-01')) AND FORMAT_DATE('%Y%m%d', DATE('2020-05-01'))
    AND h.eCommerceAction.action_type = "6"
    AND p.v2ProductName = "Liadalen turbukse dame"
GROUP BY 1,2,3
ORDER BY p.v2ProductName

如果没有任何聚合,可以删除group by,在select语句后添加distinct。 此外,根据您的需要,您应该 add/remove 取消嵌套语句。