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

如何基于is_primary布尔列筛选未设主记录的重复客户?

解决方案

你的原SQL逻辑存在偏差:按customer_id分组且提前过滤了is_primary = false的记录,完全没围绕legal_name分组来检查每组是否存在主记录,无法满足需求。

以下是两种可行的SQL写法:

方法一:分组聚合判断

SELECT legal_name, COUNT(*) AS total_records
FROM customer_table
GROUP BY legal_name
HAVING COUNT(CASE WHEN is_primary = true THEN 1 END) = 0

逻辑说明:按legal_name分组后,统计每组内is_primary为true的记录数,结果为0的分组就是未设置主记录的客户组,同时可以看到每组的总记录数。

方法二:NOT EXISTS子查询

SELECT DISTINCT legal_name
FROM customer_table c1
WHERE NOT EXISTS (
    SELECT 1
    FROM customer_table c2
    WHERE c2.legal_name = c1.legal_name
      AND c2.is_primary = true
)

逻辑说明:直接筛选出所有legal_name,确保同组内不存在任何is_primary = true的记录,最终得到无主记录的客户组名称。

如果需要查看这些组的具体客户记录,可将SELECT DISTINCT legal_name改为SELECT *,但会返回该组下的所有重复客户数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 03:42:38