如何在Google BigQuery中按平台添加page views维度
按平台新增Page Views统计的BigQuery SQL修改方案
没问题,我来帮你调整SQL,实现在现有total_users和total_sessions统计基础上,按平台新增total_page_views维度的需求。
修改后的完整SQL示例
SELECT platform, SUM(users) AS total_users, SUM(sessions) AS total_sessions, SUM(page_views) AS total_page_views -- 新增:统计各平台总页面浏览量 FROM ( SELECT -- 保留你原有的平台判断逻辑,补全未写完的正则条件 CASE WHEN REGEXP_MATCH(hits.appInfo.id, r'^example$') AND hits.page.hostname IS NULL THEN "Android" WHEN REGEXP_MATCH(hits.appInfo.id, r'^com.example.app$') AND hits.page.hostname IS NULL THEN "iOS" WHEN REGEXP_MATCH(hits.page.hostname, r'^m\..*') THEN "Mobile Web" -- 这里补全了你未写完的移动端域名匹配逻辑,可根据实际调整 ELSE "Desktop Web" -- 兜底归为桌面端,可按需修改 END AS platform, users, sessions, -- 核心新增:统计当前分组下的页面浏览量(每个PAGE类型的hit记1次PV) SUM(IF(hits.type = 'PAGE', 1, 0)) AS page_views FROM `your-project.your-dataset.your-table` -- 替换成你的实际BigQuery表路径 GROUP BY platform, users, sessions -- 需和你原查询的分组逻辑保持一致 ) AS subquery GROUP BY platform;
关键修改说明
- 新增Page Views统计逻辑:在子查询中通过
SUM(IF(hits.type = 'PAGE', 1, 0))统计每个分组对应的页面浏览量——因为Google Analytics数据中,hits.type = 'PAGE'的记录对应一次页面访问行为。 - 补全平台判断:我帮你补全了未写完的移动端域名匹配正则,你可以根据实际业务规则调整这个条件(比如修改正则表达式)。
- 外层聚合:在外层查询中直接
SUM(page_views),就能得到每个平台的总页面浏览量,和现有的用户、会话统计逻辑保持一致。
如果你的原始查询中子查询的分组逻辑有特殊调整(比如按日期分组),只需要把对应的字段加到GROUP BY中即可,不影响PV统计的核心逻辑。
内容的提问来源于stack exchange,提问作者Evyatar Aviram
相关产品推荐
相关产品推荐

