使用BigQuery从数组中的重复列中提取值

时间:2020-02-07 14:58:44

标签: google-bigquery

每个数组包含有关某个联系人属于哪个列表( internal_list_id )( vid )的信息。

我试图将所有 internal_list_id (用逗号分隔)包含在按 vid 分组的一列中。

最终数据应类似于:

ContactID | ListMembership:
3291601     1058,1060

我尝试使用以下代码,但是它仅返回有关第一个对象的信息:

SELECT list_memberships[offset(1)].vid ContactId, list_memberships[offset(1)].internal_list_id ListMembership FROM hs.contacts as c

enter image description here

以下结果是通过以下方式获得的:

SELECT list_memberships FROM hs.contacts as c

enter image description here

P.S。如果您对更好的标题有任何建议,请告诉我。谢谢!

1 个答案:

答案 0 :(得分:-1)

使用STRING_AGG(x) FROM UNNEST(array),例如:

WITH data AS (
  SELECT visitStartTime, hits[OFFSET(0)].product
  FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20170801` 
  LIMIT 100
)


SELECT visitStartTime, (
  SELECT STRING_AGG(FORMAT('$%i', localProductPrice), ', ') 
  FROM UNNEST(product)
) aggregated
FROM data