我正在做一个同期群分析,我计算每周注册的用户数量,然后计算每个在随后几周执行的事件数量。(很标准的东西!)
在花了很多时间了解 BigQuery 嵌套和数组数据之后,我决定创建两个视图,以在整个数据集(每天生成的事件表)上使用通配符来展平嵌套的 user_dim 和 event_dim 列。这就是我最终得出这些观点的方式,我的查询基于这些观点:
USERS_VIEW 架构
EVENT_VIEW 架构
查询和抛出的错误
当我执行以下查询加入这两个视图时,我收到错误“无法解析输入字符串“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
我觉得这应该很简单,但我无法弄清楚我缺少什么格式来确保可以解析日期。(并且用户界面没有告诉我哪个行号是违规者。)我希望这是一个其他人可以看到的愚蠢的错字。提前感谢您的帮助!