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

统计数据库表中重复冗余条目数的SQL查询问题

问题分析与解决

原SQL的核心问题

  1. 分组维度错误:你仅按First_Name分组,但判断重复条目需要同时依据First_Name和Last_Name的组合——同名不同姓的人不能被算作重复,这个逻辑漏洞会导致统计偏差。
  2. 计算逻辑错误:你统计的是每组的总记录数,但冗余条目是每组总条数减去1(每组第一条是基准,剩下的才是冗余),直接求和总条数自然会比预期多。

正确的SQL语句

要得到预期的结果3,你需要先计算每组的冗余数(count(*) - 1),再对这些冗余数求和:

SELECT SUM(count(*) - 1) AS redundant_count
FROM Names
GROUP BY First_Name, Last_Name
HAVING count(*) > 1;

逻辑验证

  • Elton John组总共有3条记录,冗余数为3-1=2
  • Mariah Carey组总共有2条记录,冗余数为2-1=1
  • 两者求和2+1=3,完全匹配你的预期。

如果需要先查看每组的冗余明细,可以执行以下子查询确认:

SELECT First_Name, Last_Name, count(*) AS total, count(*) - 1 AS redundant
FROM Names
GROUP BY First_Name, Last_Name
HAVING count(*) > 1;

执行后会返回:

First_NameLast_Nametotalredundant
EltonJohn32
MariahCarey21

内容的提问来源于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:56:03