在Bigquery SQL中将产品SKU列表放入一个字段

在Bigquery SQL中将产品SKU列表放入一个字段,sql,google-bigquery,Sql,Google Bigquery,我正在和Google bigquery中的一个查询争论,希望有人能帮助我 所需的输出列: 访问id-电子商务行动类型-sku列表 例如: 探访编号:123 电子商务行动类型:6 sku清单:[SKU1、SKU2、SKU3] 我尝试了以下两个问题: 一, 这不会将产品SKU放入一个按visitid和ecommat分组的列表中 二, 这给了我一个错误:SELECT list expression引用的列visitid在[16:1]处既没有分组也没有聚合 有人知道如何实现我想要的结果吗?没有ga_会话

我正在和Google bigquery中的一个查询争论,希望有人能帮助我

所需的输出列:

访问id-电子商务行动类型-sku列表

例如: 探访编号:123 电子商务行动类型:6 sku清单:[SKU1、SKU2、SKU3]

我尝试了以下两个问题:

一,

这不会将产品SKU放入一个按visitid和ecommat分组的列表中

二,

这给了我一个错误:SELECT list expression引用的列visitid在[16:1]处既没有分组也没有聚合


有人知道如何实现我想要的结果吗?

没有ga_会话表的模式详细信息,请尝试下面的方法

#standardSQL
SELECT
  visitid,
  eCommerceAction.action_type AS ecommerce_actiontype,
  (SELECT ARRAY_AGG(product.productSKU) FROM UNNEST(t.hits) WHERE NOT product.productSKU IS NULL) AS sku_list,
  ARRAY(SELECT product.productSKU FROM UNNEST(t.hits) WHERE NOT product.productSKU IS NULL) AS sku_list2
FROM `test.1234.ga_sessions_*` AS t  

如您所见-我提供了两个用于构建所需数组的选项-SELECT和ARRAYSELECT中的array_AGG没有ga_会话表的架构详细信息,请尝试下面的方法

#standardSQL
SELECT
  visitid,
  eCommerceAction.action_type AS ecommerce_actiontype,
  (SELECT ARRAY_AGG(product.productSKU) FROM UNNEST(t.hits) WHERE NOT product.productSKU IS NULL) AS sku_list,
  ARRAY(SELECT product.productSKU FROM UNNEST(t.hits) WHERE NOT product.productSKU IS NULL) AS sku_list2
FROM `test.1234.ga_sessions_*` AS t  

如您所见-我提供了两个用于构建所需阵列的选项-SELECT和ARRAYSELECT中的array_AGG查看此选项是否适用于您:

SELECT 
  visitid,
  ARRAY(SELECT AS STRUCT ecommerceAction.action_type act_type, ARRAY_AGG(DISTINCT productSku IGNORE NULLS) skus_list FROM UNNEST(hits), UNNEST(product) GROUP BY 1) data
FROM `test.1234.ga_sessions_*`

此查询与您的查询之间的主要区别在于,它避免了在“点击”字段中使用“外部未列出”字段,这有助于以后在每次访问中汇总所有电子商务活动以及与之相关的SKU。

请查看这是否适用于您:

SELECT 
  visitid,
  ARRAY(SELECT AS STRUCT ecommerceAction.action_type act_type, ARRAY_AGG(DISTINCT productSku IGNORE NULLS) skus_list FROM UNNEST(hits), UNNEST(product) GROUP BY 1) data
FROM `test.1234.ga_sessions_*`

此查询与您的查询之间的主要区别在于,它避免了在“点击数”字段中使用“外部最不重要”字段,这有助于以后在每次访问时聚合所有电子商务活动以及与之相关的SKU。

嘿,感谢您的关注。不幸的是,如果我尝试此操作,标记为product.productSKU,则会收到一条错误消息,无法访问[20:28]处数组类型为的值上的字段productSKU。有什么想法吗?我也试过选择visitid,ARRAYSELECT productSKU FROM UNNESThits.product AS sku_list2 FROM test.1234.ga_sessions_*AS t,t.hits AS hits,但这给了我一个错误:UNNEST expression references hits.product,它在[21:39]既没有分组也没有聚合。嘿,感谢您的关注。不幸的是,如果我尝试此操作,标记为product.productSKU,则会收到一条错误消息,无法访问[20:28]处数组类型为的值上的字段productSKU。有什么想法吗?我也尝试过选择visitid,ARRAYSELECT productSKU FROM UNNESThits.product AS sku_list2 FROM test.1234.ga_sessions_*AS t,t.hits AS hits,但这会导致错误UNNEST expression references hits.product,它在[21:39]既没有分组也没有聚合