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

BigQuery实现累积乘法:复用上一行计算结果

BigQuery 实现累计转化率计算

你的需求是新增total_conversion列,值为当前行及之前所有行conversion的乘积,可通过对数与指数的转换实现(BigQuery无直接的累计乘积窗口函数),以下是完整实现代码:

WITH ExampleData AS (
  SELECT 'Step 1' as step, '0.6' as conversion UNION ALL
  SELECT 'Step 2' as step, '0.8' as conversion UNION ALL
  SELECT 'Step 3' as step, '0.4' as conversion
)

SELECT 
  step,
  conversion,
  -- 计算累计转化率:转数值→取对数→累计求和→转指数还原乘积
  EXP(SUM(LOG(SAFE_CAST(conversion AS FLOAT64))) OVER (ORDER BY step)) AS total_conversion
FROM ExampleData

关键逻辑说明

  • 类型转换:用SAFE_CAST将字符串类型的conversion转为FLOAT64数值,避免转换失败报错
  • 对数转译:利用LOG()将乘法运算转为加法运算,适配窗口函数的累计求和能力
  • 顺序保证:ORDER BY step确保按步骤顺序计算累计值,避免结果混乱
  • 指数还原:用EXP()将累计对数和转回原始乘积结果

执行结果

stepconversiontotal_conversion
Step 10.60.6
Step 20.80.48
Step 30.40.192

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 05:12:39