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

SQL查询:筛选仅含Overdue与Referral值的用户记录

针对用户筛选需求的SQL解决方案

嘿,我来帮你搞定这个查询需求!你需要找出那些Details字段仅包含Overdue和Referral的用户,同时排除掉任何有Lost或Processing记录的用户对吧?下面给你两种实用的实现方式:

方法一:GROUP BY + HAVING 统计排除法

这种方法通过分组后统计违规记录的数量来筛选:

SELECT Users
FROM your_table_name  -- 记得替换成你的实际表名
GROUP BY Users
HAVING SUM(CASE WHEN Details NOT IN ('Overdue', 'Referral') THEN 1 ELSE 0 END) = 0;

逻辑解释:

  • 按Users分组后,用CASE语句标记每个用户的记录中是否包含不允许的Details值(Lost/Processing)
  • 统计这些违规记录的总数,等于0就说明该用户的所有记录都只有Overdue或Referral,符合要求

方法二:NOT EXISTS 反向排除法

这种写法更直观,直接排除掉存在违规记录的用户:

SELECT DISTINCT Users
FROM your_table_name t1  -- 替换成实际表名
WHERE NOT EXISTS (
    SELECT 1
    FROM your_table_name t2
    WHERE t2.Users = t1.Users
      AND t2.Details IN ('Lost', 'Processing')
);

逻辑解释:

  • 外层查询遍历每个用户,内层查询检查该用户是否存在任何Lost或Processing的记录
  • 如果不存在(NOT EXISTS),就保留这个用户,正好符合你的筛选条件

验证示例数据

把你提供的示例数据代入这两个查询,都会得到你期望的结果:

1560
1356
1289

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:03:37