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

如何统计MINUS查询返回的missing_names结果行数?

解决SQL差集结果行数统计问题

问题背景

现有两张数据表:
Ages表:

NameAge
John39
Katherine25
Leslie75
Gary20
Faith58

City表:

First_NameAge
JohnNew York
KatherineBoston
LeslieMiami
PamSeattle
GaryChicago
FaithSanta Barbra

执行以下SQL可得到Ages表中不存在的City表姓名:

select distinct First_Name as missing_names from City minus select distinct Name from Ages

返回结果:

missing_names
Pam

但执行select count(distinct First_Name) as missing_names from City minus select distinct Name from Ages时,返回结果为6,不符合预期的1,需要统计差集结果的行数。

错误原因

你写的SQL逻辑顺序错误:先统计了City表中不重复First_Name的总数(6),再将这个单一数值与Ages表的不重复Name集合做差集操作。由于数值6不在Ages的Name集合中,差集结果保留6,这显然不是你要的统计逻辑。

正确SQL写法

需要先执行差集查询得到缺失的姓名列表,再对这个结果集统计行数,子查询是关键:

SELECT COUNT(*) AS missing_names
FROM (
    SELECT DISTINCT First_Name
    FROM City
    MINUS
    SELECT DISTINCT Name
    FROM Ages
) AS missing_names_sub;

预期结果

missing_names
1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 23:20:00