我想将我的Google Analytics(分析)表与Google BigQuery中的另一个表联接,但是我想使用自定义维度作为唯一标识符。以下是我到目前为止的查询,但是它不喜欢我使用自定义维度3作为唯一标识符的语法。这是我收到的错误消息:
**无法访问[6:26]处类型为ARRAY>的值的字段索引
有什么想法可以使我工作吗?
class FilterParameters {
var category: [Category]? = nil
var color: [Color]? = nil
}
答案 0 :(得分:1)
如果要使用数组,我建议从https://cloud.google.com/bigquery/docs/reference/standard-sql/arrays#accessing-array-elements开始
您要尝试执行的操作必须使用其他类似的sintax完成
GA.customDimensions[OFFSET(2)]
它将访问数组中的第三个元素。
答案 1 :(得分:0)
我不建议加入整个ga_sessions表。在使用自定义维度之前,请仅选择所需的列(更高效,更便宜),然后将其从数组中删除。最简单的方法是创建子查询。
with base as (
SELECT
DATE,
(SELECT value FROM UNNEST(hits.customDimensions) WHERE index=1 LIMIT 1) AS hit_level_cd1,
(SELECT value FROM UNNEST(t.customDimensions) WHERE index=3 LIMIT 1) session_level_cd3
FROM `wehco-bi.64884663.ga_sessions_20180928` AS t, UNNEST(hits) AS hits
)
SELECT DATE, hit_level_cd1,session_level_cd3
FROM base AS GA
LEFT JOIN
`wehco-bi.BlueConic.ao` AS BC
ON GA.session_level_cd2 = BC.bc_profile_id
LIMIT 100
首先,我创建一个临时基表,在其中不嵌套自定义维度(我在会话和命中级别上都做过,以显示差异),然后使用其中一个将它们连接到新表中,就像您尝试做的那样。