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

如何修正SQL以基于users数据集计算正确的订阅率?

修正后的订阅人数及订阅率计算SQL

方式一:直接输出订阅人数与整体订阅率

SELECT
    COUNT(CASE WHEN sign_up_at IS NOT NULL THEN user_id END) AS subscribed_users,
    ROUND(COUNT(CASE WHEN sign_up_at IS NOT NULL THEN user_id END) * 100.0 / COUNT(user_id), 2) AS subscription_rate
FROM users;

方式二:同时输出订阅/未订阅分组数据及对应占比

WITH user_stats AS (
    SELECT
        CASE WHEN sign_up_at IS NOT NULL THEN '已订阅' ELSE '未订阅' END AS subscription_status,
        COUNT(*) AS user_count
    FROM users
    GROUP BY subscription_status
)
SELECT
    subscription_status,
    user_count,
    ROUND(user_count * 100.0 / SUM(user_count) OVER (), 2) AS rate
FROM user_stats;

修正说明

  1. 原SQL未区分sign_up_at是否为NULL,导致统计逻辑偏离需求。通过CASE WHEN或分组筛选,可以精准定位已订阅用户(sign_up_at不为NULL)。
  2. 订阅率核心逻辑为「订阅人数 / 总用户数 × 100」,用COUNT(user_id)获取总用户数(不受NULL值干扰),再完成比例计算。
  3. 加入ROUND()函数可将订阅率保留指定小数位,提升结果可读性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 18:15:41