我正在进行同期群体分析,我计算按周注册的用户数量,然后计算在随后几周内每次执行的事件数量。 (非常标准的东西!)
在花了很多时间了解BigQuery嵌套和数组数据后,我决定创建两个视图,在整个数据集(每天生成事件的表)上使用通配符展平嵌套的user_dim和event_dim列。这就是我如何处理这些观点所依据的观点:
当我执行以下查询加入这两个视图时,我收到错误"无法解析输入字符串" 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
我觉得这应该很简单,但我无法弄清楚我缺少什么格式以确保日期可以被解析。 (并且用户界面并没有告诉我哪个行号是罪犯。)我希望这是其他人可以看到的愚蠢的错字。在此先感谢您的帮助!
答案 0 :(得分:2)
我收到错误“无法解析输入字符串”20161111“”
我认为以下内容有助于解决该错误
PARSE_DATE('%x', events.event_date)
应该是
PARSE_DATE('%Y%m%d', events.event_date)
此外,您可以选择将LEFT JOIN
更改为JOIN