解析"无法解析输入字符串" BigQuery中的错误

时间:2017-02-04 01:51:15

标签: google-bigquery retention

我正在进行同期群体分析,我计算按周注册的用户数量,然后计算在随后几周内每次执行的事件数量。 (非常标准的东西!)

在花了很多时间了解BigQuery嵌套和数组数据后,我决定创建两个视图,在整个数据集(每天生成事件的表)上使用通配符展平嵌套的user_dim和event_dim列。这就是我如何处理这些观点所依据的观点:

USERS_VIEW架构

enter image description here

EVENT_VIEW架构

enter image description here

查询,错误抛出

当我执行以下查询加入这两个视图时,我收到错误"无法解析输入字符串" 20161111"":

    SELECT
    DATE_TRUNC(users.first_seen_date, WEEK) AS week,
    COUNT(DISTINCT users.uid) AS signed_up_users,
    COUNT(DISTINCT events.uid) AS logged_in_users,
    CASE
       WHEN COUNT(DISTINCT users.uid) > 0 THEN COUNT(DISTINCT events.uid) * 100 / COUNT(DISTINCT users.uid)
       ELSE 0
   END AS retention_pct
   FROM
      USERS_VIEW AS users
   LEFT JOIN
     EVENTS_VIEW AS events
    ON
      users.uid = events.uid
      AND PARSE_DATE('%x', events.event_date) >= DATE_ADD(users.first_seen_date, INTERVAL 1 WEEK)
      AND PARSE_DATE('%x', events.event_date) < DATE_ADD(users.first_seen_date, INTERVAL 2 WEEK)
     GROUP BY
      1
     ORDER BY
      1

我觉得这应该很简单,但我无法弄清楚我缺少什么格式以确保日期可以被解析。 (并且用户界面并没有告诉我哪个行号是罪犯。)我希望这是其他人可以看到的愚蠢的错字。在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

  

我收到错误“无法解析输入字符串”20161111“”

我认为以下内容有助于解决该错误

PARSE_DATE('%x', events.event_date)

应该是

PARSE_DATE('%Y%m%d', events.event_date)

此外,您可以选择将LEFT JOIN更改为JOIN