You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GBQ如何按page_location分组计算add_basket与view的count比率

BigQuery 转化率计算实现方案

你的需求属于分组聚合计算加购转化率场景,不需要用到OVER窗口函数,以下是两种稳定的实现方式:

方案1:条件聚合(最推荐,逻辑简单易维护)

直接通过CASE语句按事件类型分别求和后计算比率:

SELECT
  page_location,
  -- 用SAFE_DIVIDE避免浏览量为0时触发除以0报错
  SAFE_DIVIDE(
    SUM(CASE WHEN event_name = 'add_basket' THEN count ELSE 0 END),
    SUM(CASE WHEN event_name = 'view' THEN count ELSE 0 END)
  ) AS add_basket_rate
FROM
  `你的项目ID.你的数据集名.你的表名`
GROUP BY
  page_location
-- 可选:过滤掉没有浏览记录的页面,避免返回null
-- HAVING SUM(CASE WHEN event_name = 'view' THEN count ELSE 0 END) > 0

针对你给出的示例数据,上述语句会先按page_location分组,计算A页面的view总计数为300,add_basket总计数为30,最终得到比率0.1,和预期结果一致。

方案2:PIVOT 语法实现

如果你需要用PIVOT完成,正确写法如下:

SELECT
  page_location,
  SAFE_DIVIDE(add_basket, view) AS add_basket_rate
FROM `你的项目ID.你的数据集名.你的表名`
PIVOT(
  SUM(count) 
  FOR event_name IN (
    'view' AS view,
    'add_basket' AS add_basket
  )
)
-- 可选:过滤无浏览记录的页面
-- WHERE view > 0

内容的提问来源于stack exchange,提问作者Leonid Chernyadyev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 21:06:03