使用BigQuery访问Google Analytics分析自定义维度

问题描述


我想从我的GA BigQuery数据中获取以下架构: 主机名; customDimension2; customDimensions3;浏览量;屏幕视图; TotalEvents;届会

起初,我只想获取主机名和cd2,我的查询如下:

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

与交叉连接版本相比,您拥有的数据越多,执行该查询的速度就越快。子查询总是比交叉联接更快。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...