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

SQL查询:筛选OA表中不在CUSTOMER表的坐标及统计客户数

解决OA表坐标筛选及客户数量统计问题

一、筛选未出现在CUSTOMER表address字段中的OA表坐标

你之前用INNER JOIN只会返回两边匹配的记录,要找CUSTOMER表中没有的OA坐标,可以用以下两种常用方法:

方法1:LEFT JOIN + IS NULL

SELECT oa.coordinate
FROM OA oa
LEFT JOIN CUSTOMER c ON oa.coordinate = c.address
WHERE c.address IS NULL;

原理:LEFT JOIN会保留OA表的所有记录,CUSTOMER表中匹配不到的记录,对应address字段会是NULL,通过WHERE筛选出这些NULL的记录,就是目标坐标。

方法2:NOT EXISTS子查询

SELECT coordinate
FROM OA oa
WHERE NOT EXISTS (
    SELECT 1
    FROM CUSTOMER c
    WHERE c.address = oa.coordinate
);

原理:对OA表的每个坐标,检查CUSTOMER表中是否不存在匹配的address值,不存在则返回该坐标。

二、统计每个坐标对应的客户数量

可以通过关联分组统计实现,不管坐标是否在CUSTOMER表中存在,都能得到对应的客户数(不存在的坐标客户数为0):

SELECT oa.coordinate, COUNT(c.address) AS customer_count
FROM OA oa
LEFT JOIN CUSTOMER c ON oa.coordinate = c.address
GROUP BY oa.coordinate;

原理:LEFT JOIN保留OA所有坐标,COUNT(c.address)会自动忽略NULL值(即匹配不到的情况),通过GROUP BY按坐标分组,就能得到每个坐标对应的客户数量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 19:01:20