Google analytics 逐日查询数据

Google analytics 逐日查询数据,google-analytics,google-bigquery,Google Analytics,Google Bigquery,我正在使用BigQuery中的Google Analytics数据进行一些查询,以评估日常性能。我的项目目前是用来自GA的数据流建立的。问题是昨天的表格GA.us.GA_sessions_20181105要到上午晚些时候才会创建 在创建昨天的表之前,前一天的实时视图ga.us.ga_realtime_sessions_view_20181105仍然存在 是否有一种方法可以同时查询昨天的表和昨天的实时视图,并在昨天的表尚未写入时处理“未找到表”错误 大概是这样的: SELECT date,

我正在使用BigQuery中的Google Analytics数据进行一些查询,以评估日常性能。我的项目目前是用来自GA的数据流建立的。问题是昨天的表格GA.us.GA_sessions_20181105要到上午晚些时候才会创建

在创建昨天的表之前,前一天的实时视图ga.us.ga_realtime_sessions_view_20181105仍然存在

是否有一种方法可以同时查询昨天的表和昨天的实时视图,并在昨天的表尚未写入时处理“未找到表”错误

大概是这样的:

SELECT
  date,
  SUM(totals.visits) AS visits
FROM
    -- If this table doesn't exist yet
    TABLE_DATE_RANGE([ga:us.ga_sessions_],
    DATE_ADD(DATE_ADD(CURRENT_TIMESTAMP(), -6, 'HOUR'), -1, 'DAY'),
    DATE_ADD(DATE_ADD(CURRENT_TIMESTAMP(), -6, 'HOUR'), -1, 'DAY')),
    -- Query this view instead
    TABLE_DATE_RANGE([ga:us.ga_realtime_sessions_view_],
    DATE_ADD(DATE_ADD(CURRENT_TIMESTAMP(), -6, 'HOUR'), -1, 'DAY'),
    DATE_ADD(DATE_ADD(CURRENT_TIMESTAMP(), -6, 'HOUR'), -1, 'DAY'))
WHERE
  TIME(DATE_ADD(SEC_TO_TIMESTAMP(visitStartTime), -6, 'HOUR')) <= TIME(DATE_ADD(CURRENT_TIMESTAMP(), -6, 'HOUR'))
GROUP BY
  date;
解决方案: 感谢@Bobbylank,我只是在同一个查询中选择了两个表:

SELECT
  date,
  SUM(totals.visits) AS visits
FROM
  TABLE_DATE_RANGE([ga:us.ga_sessions_],
    DATE_ADD(DATE_ADD(CURRENT_TIMESTAMP(), -6, 'HOUR'), -1, 'DAY'),
    DATE_ADD(DATE_ADD(CURRENT_TIMESTAMP(), -6, 'HOUR'), -1, 'DAY')),
  TABLE_DATE_RANGE([ga:us.ga_realtime_sessions_view_],
    DATE_ADD(DATE_ADD(CURRENT_TIMESTAMP(), -6, 'HOUR'), -1, 'DAY'),
    DATE_ADD(DATE_ADD(CURRENT_TIMESTAMP(), -6, 'HOUR'), -1, 'DAY'))
WHERE
  TIME(DATE_ADD(SEC_TO_TIMESTAMP(visitStartTime), -6, 'HOUR')) <= TIME(DATE_ADD(CURRENT_TIMESTAMP(), -6, 'HOUR'))
GROUP BY
  date;

我似乎记得有过这个问题,并通过选择前两天和前一天的ga_会话以及前一天和当前一天的实时表来解决它

这确保了查询不会出错,因为每天应该至少有一个表可用


然后,我刚刚从结果表中选择了前一天的行。

我似乎记得有这个问题,并通过选择前一天和前一天两天的ga_会话以及前一天和当前一天的实时表来解决它

这确保了查询不会出错,因为每天应该至少有一个表可用

然后,我刚刚从结果表中选择了前一天的行