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

为何SQL查询未返回各组真实转化率,反而均显示100%?

问题原因排查与修正

核心问题:关联逻辑错误

你的查询中,LEFT JOIN "groups" ON activity.uid = groups.uid这一步错误地将分组表与活动表关联,而非用户表。这会导致:

  • 只有存在活动记录(即已转化)的用户才会被匹配到分组中
  • COUNT(DISTINCT id)统计的是每组中有活动记录的用户数,而非该组的总用户数
  • 分子COUNT(DISTINCT activity.uid)和分母统计的是同一批用户,因此转化率必然为100%

修正后的SQL

SELECT
    groups.group,
    COUNT(DISTINCT users.id) AS total_users,
    COUNT(DISTINCT activity.uid) AS total_converted,
    (COUNT(DISTINCT activity.uid)*1.0 / COUNT(DISTINCT users.id)::float * 100) AS conversion_rate
FROM users
LEFT JOIN "groups" ON users.id = groups.uid  -- 修正:用户表直接关联分组表
LEFT JOIN activity ON users.id = activity.uid
GROUP BY groups.group;

关键修正点

  • 将分组表与用户表直接关联,确保统计每组的全部用户作为计算转化率的分母
  • 保持用户表与活动表的左连接,保留没有活动记录的用户,准确统计各组的实际转化人数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 21:22:39