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

SQL查询:如何筛选始终购买同一品牌同一款产品的忠诚客户

筛选客户消费表中忠诚客户的SQL实现

前提说明

现有客户消费表Customer Table,包含三个字段:

  • Customer_id:客户ID
  • Product:产品名称
  • Brand:品牌名称

样例数据如下:

Customer_idProductBrand
123ChocobixCadbury
235ChocobixCadbury
1235 starCadbury
456KikatNestle
235ChocobixCadbury
456ChocobixCadbury
432Milky barNestle

筛选规则

忠诚客户判定标准:同一客户购买的所有产品,每个品牌下仅对应唯一一款产品,不存在同一品牌下购买多款不同产品的记录。根据样例数据,符合要求的客户为235、432。

实现SQL语句

核心思路是先按客户+品牌分组,统计每组的去重产品数量,再按客户聚合,确保所有品牌分组的去重产品数都为1即可:

SELECT Customer_id
FROM (
    SELECT 
        Customer_id,
        Brand,
        COUNT(DISTINCT Product) AS distinct_product_count
    FROM `Customer Table`
    GROUP BY Customer_id, Brand
) AS customer_brand_product_cnt
GROUP BY Customer_id
-- 确保该客户下所有品牌对应的不同产品数量都为1
HAVING MAX(distinct_product_count) = 1
AND MIN(distinct_product_count) = 1;

如果你的数据库支持ALL语法,也可以简化写法:

SELECT DISTINCT Customer_id
FROM `Customer Table` t1
WHERE 1 = ALL (
    SELECT COUNT(DISTINCT Product)
    FROM `Customer Table` t2
    WHERE t2.Customer_id = t1.Customer_id
    GROUP BY t2.Brand
);

结果验证

以上SQL在样例数据上运行的输出结果为:

Customer_id
235
432

完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 14:57:02