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

SQL(Snowflake)实操:将客户订阅统计查询改写为CTE格式的方法

CTE改写方案

你可以将订阅表的按客户维度统计逻辑抽为独立CTE,再和客户表关联即可完成改写,改写后的语句逻辑分层更清晰,可读性更高。

涉及表结构

表1:customers

  • customer_id:每位客户的唯一ID
  • full_name:客户全名

表2:subscriptions

  • subscription_id:订阅服务的唯一ID
  • customer_id:订阅对应服务的客户ID
  • title:订阅服务名称

改写后SQL代码

WITH customer_subscription_stats AS (
    SELECT
        customer_id,
        COUNT(*) AS subscriptions_count
    FROM subscriptions
    GROUP BY customer_id
)
SELECT
    c.customer_id,
    c.full_name,
    -- 如果需要和原查询逻辑完全一致(无订阅客户返回NULL),直接使用csc.subscriptions_count即可
    COALESCE(csc.subscriptions_count, 0) AS subscriptions_count
FROM customers c
LEFT JOIN customer_subscription_stats csc
    ON c.customer_id = csc.customer_id;

说明

上述写法新增的COALESCE函数用于将无订阅客户的统计结果从NULL转换为0,统计结果更符合业务常规需求,如果你需要完全对齐原语句的输出,直接删除COALESCE包裹即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:06:02