如何在BigQuery中按周分组统计Firebase页面访问事件?
按周统计Firebase页面访问用户数的BigQuery实现
首先纠正一个误区:你当前用count(event_name)统计的是事件发生次数,不是用户数量。要统计用户数,需要用COUNT(DISTINCT user_pseudo_id)(Firebase事件表中默认用user_pseudo_id标识唯一用户)。
接下来解决按周分组的问题:你的event_date是字符串格式(如20221231),需要先转成日期类型,再用BigQuery的日期截断函数按周聚合。
完整SQL语句如下:
SELECT -- 将字符串日期转为日期类型,再截断到每周起始日期(默认周日为一周开始,可调整) DATE_TRUNC(PARSE_DATE('%Y%m%d', event_date), WEEK) AS week_start_date, -- 统计该周内访问页面的唯一用户数 COUNT(DISTINCT user_pseudo_id) AS unique_page_view_users FROM `app-xxxx.analytics_247657392.events_*` WHERE event_name = 'page_download_view' GROUP BY week_start_date ORDER BY week_start_date DESC; -- 按周倒序排列,最新的周在前
关键说明:
PARSE_DATE('%Y%m%d', event_date):把20221231格式的字符串转为BigQuery可识别的日期类型。DATE_TRUNC(..., WEEK):将日期截断到所在周的起始日期,默认每周从周日开始。如果需要以周一为周起始,可以改成DATE_TRUNC(..., WEEK(MONDAY))。COUNT(DISTINCT user_pseudo_id):确保同一个用户在一周内多次访问只被统计一次。
内容的提问来源于stack exchange,提问作者Teddy Kossoko
相关产品推荐
相关产品推荐

