Google Data Studio 如何实现表格逐行百分比变化计算
解决方案
下面两种方案均可实现需求,且支持仪表盘日期范围控件的动态筛选:
方案1:使用BigQuery自定义查询作为Data Studio数据源(推荐)
该方案复用你原有LAG函数逻辑,扩展性强,适配流程变动的场景:
- 第一步:在Data Studio添加数据源时选择BigQuery,再选择「自定义查询」选项
- 第二步:写入如下SQL逻辑,替换对应表名和字段名即可:
WITH filtered_events AS ( SELECT event, SUM(event_count) AS event_count FROM `你的项目ID.你的数据集名.你的事件表名` -- 以下为Data Studio内置动态日期参数,自动响应仪表盘日期控件选择范围 WHERE 你的日期字段 BETWEEN PARSE_DATE("%Y%m%d", @DS_START_DATE) AND PARSE_DATE("%Y%m%d", @DS_END_DATE) GROUP BY event ORDER BY event_count DESC ) SELECT event, event_count, ROUND(IFNULL(100 * (event_count / LAG(event_count) OVER(ORDER BY event_count DESC) - 1), 0), 2) || '%' AS `% change` FROM filtered_events
- 第三步:保存数据源后直接用该数据源制作表格即可,百分比列会随筛选条件自动更新。
方案2:固定用户旅程场景下直接用Data Studio计算字段实现
如果你的用户旅程路径固定不会新增步骤,可以直接在Data Studio中新建三个计算字段实现:
- 新建
event_order字段,给每个事件分配固定排序序号:
CASE event WHEN 'sign-up button' THEN 1 WHEN 'confirm account' THEN 2 WHEN 'Log in button' THEN 3 WHEN 'ProductX button' THEN 4 WHEN 'ProductY button' THEN 5 WHEN 'Payment button' THEN 6 ELSE 99 END
- 新建
prev_event_count字段,获取上一步骤的点击量:
CASE event_order WHEN 2 THEN SUM(CASE WHEN event_order = 1 THEN event_count ELSE 0 END) OVER() WHEN 3 THEN SUM(CASE WHEN event_order = 2 THEN event_count ELSE 0 END) OVER() WHEN 4 THEN SUM(CASE WHEN event_order = 3 THEN event_count ELSE 0 END) OVER() WHEN 5 THEN SUM(CASE WHEN event_order = 4 THEN event_count ELSE 0 END) OVER() WHEN 6 THEN SUM(CASE WHEN event_order = 5 THEN event_count ELSE 0 END) OVER() ELSE 0 END
- 新建
% change字段计算最终百分比:
ROUND(IFNULL(100 * (event_count / prev_event_count - 1), 0), 2) || '%'
注意:该方案后续新增旅程步骤时需要手动更新CASE逻辑,扩展性弱于方案1。
内容的提问来源于stack exchange,提问作者programmer987
相关产品推荐
相关产品推荐

