Bigquery联合/加入错误

时间:2015-03-04 16:10:13

标签: google-analytics google-bigquery

我在尝试从我的google analytics bigquery导出表中获取错误时...我想通过一些过滤器查看一个月的数据(包括将其缩小到特定感兴趣的全名列表的列表) )。但是,当我运行以下查询时,我收到此错误:

错误:(L2:1):JOIN(包括半连接)和UNION ALL(逗号)可能不会合并在一个SELECT语句中。将UNION ALL移动到内部查询或将JOIN移动到外部查询。

select date, fullvisitorid, visitid, visitstarttime, visitnumber, hits.hitNumber, hits.page.pagePath, hits.page.pageTitle, hits.type --and other columns
FROM (TABLE_DATE_RANGE([mydata.ga_sessions_],TIMESTAMP('2015-02-01'),TIMESTAMP('2015-02-28')))
where fullvisitorid in (select * from [mydata.visitorid_lookup]) --table includes a list of fullvisitorids I am interested in
and device.browser!='Internet Explorer'
and lower(hits.page.pagePath) not like '%refer%'
and lower(hits.page.pagePath) like '%sample%'

所以我将查询更改为:

select * from (
   select date, fullvisitorid, visitid, visitstarttime, visitnumber, hits.hitNumber, hits.page.pagePath, hits.page.pageTitle, hits.type
   FROM (TABLE_DATE_RANGE([mydata.ga_sessions_],TIMESTAMP('2015-02-01'),TIMESTAMP('2015-02-28')))
   where device.browser!='Internet Explorer'
   and lower(hits.page.pagePath) not like '%refer%'
   and lower(hits.page.pagePath) like '%sample%')
where fullvisitorid in (select * from [mydata.visitorid_lookup_test])

然后给出了一个错误,指出响应太大而无法返回。如果在子查询中执行fullvisitorid的where语句,那么它将被大大减少,但当然这似乎不可能。所以我觉得我在这个岩石和坚硬的地方之间......我还有另一种方法吗?谢谢!

1 个答案:

答案 0 :(得分:2)

“结果太大”错误适用于查询的最终结果,这意味着即使在应用WHERE中的semijoin之后结果也太大。如果您使用“允许大结果”设置,这应该可以使用。