大查询 union/join 错误

Bigquery union/join error

我在尝试从我的 google 分析 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])

然后给我一个错误,说响应太大 return。如果在子查询中执行 fullvisitorid 的 where 语句,它将大大减少,但当然这似乎是不可能的。所以我觉得我在这件事上进退两难……我还有其他想念的方式吗?谢谢!

"result is too large" 错误适用于查询的最终结果,这意味着即使应用了 WHERE 中的半连接,结果仍然太大。如果您使用 "Allow Large Results" 设置,这应该可以工作。