问题描述
我想从我的GA BigQuery数据中获取以下架构: 主机名; customDimension2; customDimensions3;浏览量;屏幕视图; TotalEvents;届会
SELECT hits.page.hostname,hits.customDimensions.value
FROM `dataset`,UNnesT(hits) as hits
WHERE hits.customDimensions.index = 2
LIMIT 1000
出现以下错误:
无法访问[1:162]上类型为ARRAY
那么我该如何处理两个不同的BigQuery数组?
解决方法
以下是用于BigQuery标准SQL
#standardSQL
SELECT hit.page.hostname,customDimension.value
FROM `dataset`,UNNEST(hits) AS hit,UNNEST(hit.customDimensions) AS customDimension
WHERE customDimension.index = 2
LIMIT 100
,
由于该数组中最多可以包含200个字段,并且通常只希望其中之一,所以最好不要与其交叉连接,而是编写一些子查询。
SELECT
page.hostname,(SELECT value FROM UNNEST(h.customDimensions) WHERE index=2) AS cd2
FROM `dataset`,UNNEST(hits) as h
LIMIT 1000
与交叉连接版本相比,您拥有的数据越多,执行该查询的速度就越快。子查询总是比交叉联接更快。