截至几天前,以下查询在使用the schema generated by an export from GA的BQ上运行良好:
SELECT hits.customDimensions.value
FROM TABLE_DATE_RANGE([88399188.ga_sessions_], TIMESTAMP('20150623'), TIMESTAMP('20150623'))
WHERE hits.customDimensions.index=14
LIMIT 1000
现在,我收到以下错误:
Error: Cannot query the cross product of repeated fields customDimensions.index and hits.customDimensions.index.
有趣的是,以下查询工作正常(即没有WHERE子句):
SELECT hits.customDimensions.value
FROM TABLE_DATE_RANGE([88399188.ga_sessions_], TIMESTAMP('20150623'), TIMESTAMP('20150623'))
LIMIT 1000
此外,以下查询正常工作:
SELECT hits.customDimensions.value
FROM [88399188.ga_sessions_20150623]
WHERE hits.customDimensions.index=14
LIMIT 1000
请注意,FROM子句是此子句与失败查询之间的唯一区别;即使他们应该解决完全相同的查询。请帮忙!我做错了什么?
答案 0 :(得分:2)
问题是customDimensions都是REPEATED RECORD,而hits是REPEATED RECORD,每个都可以独立于另一个重复。因此,在hits.customDimensions.index上进行过滤时选择hits.customDimensions.value在含义上没有明确定义。例如,如果您希望在非hits.customDimensions.index为14时跳过整个记录,则可以使用以下查询:
SELECT hits.customDimensions.value
FROM TABLE_DATE_RANGE(
[88399188.ga_sessions_], TIMESTAMP('20150623'), TIMESTAMP('20150623')
OMIT RECORD IF EVERY(hits.customDimensions.index != 14)
LIMIT 1000
答案 1 :(得分:0)
此异常不再可重现。虽然我还没有得到谷歌的确认,但我不得不认为这是一个固定的临时错误。