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

如何在Microsoft SQL中计算未流失与流失客户的收入差值?

计算未流失与流失客户的收入差值

你之前的两个查询是独立的结果集,无法直接做减法运算,需要把两类收入聚合到同一个查询上下文里,以下是两种可行方案:

方法一:子查询合并计算

将两个统计查询作为子查询嵌入主查询,实现差值计算:

SELECT 
    -- 未流失客户总收入
    (SELECT SUM([monthly charge]) 
     FROM portfolioproject..telecom_churn 
     WHERE [Customer Status] IN ('Joined', 'Stayed')) AS Non_Churned_Revenue,
    -- 流失客户总收入
    (SELECT SUM([monthly charge]) 
     FROM portfolioproject..telecom_churn 
     WHERE [Customer Status] = 'Churned') AS Churned_Revenue,
    -- 收入差值
    (SELECT SUM([monthly charge]) 
     FROM portfolioproject..telecom_churn 
     WHERE [Customer Status] IN ('Joined', 'Stayed')) - 
    (SELECT SUM([monthly charge]) 
     FROM portfolioproject..telecom_churn 
     WHERE [Customer Status] = 'Churned') AS Revenue_Difference

如果使用SQL Server,也可以用变量存储中间结果,代码更清晰:

DECLARE @NonChurned DECIMAL(18,2)
DECLARE @Churned DECIMAL(18,2)

-- 统计未流失客户收入
SELECT @NonChurned = SUM([monthly charge]) 
FROM portfolioproject..telecom_churn 
WHERE [Customer Status] IN ('Joined', 'Stayed')

-- 统计流失客户收入
SELECT @Churned = SUM([monthly charge]) 
FROM portfolioproject..telecom_churn 
WHERE [Customer Status] = 'Churned'

-- 输出结果及差值
SELECT 
    @NonChurned AS Non_Churned_Revenue,
    @Churned AS Churned_Revenue,
    @NonChurned - @Churned AS Revenue_Difference

方法二:条件聚合(推荐)

只需要扫描一次数据表,性能更优。通过CASE语句区分客户类型,直接聚合计算两类收入及差值:

SELECT 
    SUM(CASE WHEN [Customer Status] IN ('Joined', 'Stayed') THEN [monthly charge] ELSE 0 END) AS Non_Churned_Revenue,
    SUM(CASE WHEN [Customer Status] = 'Churned' THEN [monthly charge] ELSE 0 END) AS Churned_Revenue,
    SUM(CASE WHEN [Customer Status] IN ('Joined', 'Stayed') THEN [monthly charge] ELSE 0 END) - 
    SUM(CASE WHEN [Customer Status] = 'Churned' THEN [monthly charge] ELSE 0 END) AS Revenue_Difference
FROM portfolioproject..telecom_churn

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 15:10:23