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

SQL查询需求:按9级金额阶梯统计指定日期区间客户付款等级计数

按金额阶梯统计付款客户数量的SQL实现

核心步骤拆解

  1. 计算单个客户累计付款额:筛选指定日期范围内的付款记录,按客户分组求和,得到每个客户的总付款金额。
  2. 匹配金额等级:用CASE WHEN条件语句,把每个客户的总金额映射到对应的9级阶梯中。
  3. 按等级统计客户数:将匹配好等级的结果按等级分组,统计每个等级下的客户数量。

假设数据表结构

假设你的付款记录表名为payments,包含以下核心字段:

  • customer_id:客户唯一标识
  • payment_amount:单笔付款金额(数值类型)
  • payment_date:付款日期(日期/时间类型)

完整SQL示例

-- 定义金额阶梯并统计客户数
WITH customer_total_payments AS (
    -- 第一步:计算每个客户在指定日期内的总付款额
    SELECT
        customer_id,
        SUM(payment_amount) AS total_paid
    FROM payments
    -- 替换为你的目标日期区间
    WHERE payment_date BETWEEN '2023-01-01' AND '2023-12-31'
    GROUP BY customer_id
)
-- 第二步:匹配等级并统计客户数量
SELECT
    -- 根据实际9级阶梯调整阈值与描述
    CASE
        WHEN total_paid <= 100 THEN '等级1:0-100'
        WHEN total_paid <= 500 THEN '等级2:101-500'
        WHEN total_paid <= 1000 THEN '等级3:501-1000'
        WHEN total_paid <= 2000 THEN '等级4:1001-2000'
        WHEN total_paid <= 5000 THEN '等级5:2001-5000'
        WHEN total_paid <= 10000 THEN '等级6:5001-10000'
        WHEN total_paid <= 20000 THEN '等级7:10001-20000'
        WHEN total_paid <= 50000 THEN '等级8:20001-50000'
        ELSE '等级9:50001+'
    END AS amount_level,
    COUNT(customer_id) AS customer_count
FROM customer_total_payments
GROUP BY amount_level
-- 可选:按等级顺序排序,避免结果混乱
ORDER BY 
    CASE amount_level
        WHEN '等级1:0-100' THEN 1
        WHEN '等级2:101-500' THEN 2
        WHEN '等级3:501-1000' THEN 3
        WHEN '等级4:1001-2000' THEN 4
        WHEN '等级5:2001-5000' THEN 5
        WHEN '等级6:5001-10000' THEN 6
        WHEN '等级7:10001-20000' THEN 7
        WHEN '等级8:20001-50000' THEN 8
        ELSE 9
    END;

关键部分解释

  • CTE临时结果集:customer_total_payments用来存储每个客户的累计付款额,拆分逻辑后更容易理解和调试。
  • 日期过滤细节:如果你的payment_date包含时间部分,可把条件改成payment_date >= '2023-01-01' AND payment_date < '2024-01-01',避免漏统计当天最后时刻的付款记录。
  • 阶梯自定义:直接修改CASE WHEN里的金额阈值和等级描述,就能适配你实际的9级标准。
  • 排序逻辑:最后的ORDER BY保证结果按等级1到9的顺序展示,不会出现字符串排序导致的顺序混乱。

新手注意事项

  • 确保payment_amount是数值类型,否则SUM函数会报错。
  • GROUP BY customer_id会自动合并同一客户的多笔付款,不会重复统计客户。
  • 如果需要强制显示所有9级(哪怕该等级客户数为0),可以预先定义一个包含所有等级的临时表,再用左连接关联统计结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 20:05:02