在BigQuery中的intraday和app_events表中组合多个SELECT FROM?

时间:2017-04-07 18:56:05

标签: sql google-bigquery

有没有办法可以将这两个select语句组合成一个?我试过了:

  

FROM dataset1.app_events_intraday_*dataset2.app_events_*,UNNEST(event_dim)AS事件

当我跑步时,我得到一个Column name event_dim is ambiguous,我不太清楚为什么会这样。如何在不运行两个联合的情况下对这两个表运行查询?

以下是对任何感兴趣的人的完整查询:

WITH allTables AS (
  SELECT 
    CONCAT(user_dim.app_info.app_instance_id, ':', user_dim.app_info.app_platform) AS app,
    event.date,
    user_dim.app_info.app_instance_id AS users
  FROM `dataset1.app_events_intraday_*`, UNNEST(event_dim) AS event
  WHERE _TABLE_SUFFIX 
   BETWEEN '20170405' AND '20170405'

  UNION ALL
  SELECT 
    CONCAT(user_dim.app_info.app_instance_id, ':', user_dim.app_info.app_platform) AS app,
    event.date,
    user_dim.app_info.app_instance_id AS users
  FROM `dataset2.app_events_*`, UNNEST(event_dim) AS event
  WHERE _TABLE_SUFFIX 
   BETWEEN '20170405' AND '20170405'
) 
SELECT 
  COUNT(DISTINCT(users)) AS unique,
  COUNT(users) AS total
FROM allTables

1 个答案:

答案 0 :(得分:2)

  

FROM dataset1.app_events_intraday_ ,dataset2.app_events _ ,UNNEST(event_dim)AS事件
  当我运行时,我得到一个列名称event_dim是不明确的,我不太清楚它为什么会

event_dim不明确,因为此字段存在于app_events_intraday_ *和app_events_ *表中

  

如何在不运行两个联合的情况下对这两个表运行查询?

如果您在同一数据集中同时拥有两组表格,则可以将$(document).ready(function() { $(document).scroll(function() { console.log('Scrolled to ' + $(this).scrollTop()); }) }); 调整为

FROM

这样FROM dataset.app_events_*, UNNEST (event_dim) AS event 模式将覆盖两组 但是,在这种情况下,您还需要将WHERE子句调整为类似下面的内容

dataset.app_events_*
  

现在 - 坏消息

通配符仅限于同一数据集中的表格!
在你的情况下你不能消除UNION ALL的使用