当前位置: 首页 > 面试题库 >

在SQL表中查找重复值

暨嘉
2023-03-14
问题内容

在一个字段中查找重复项很容易:

SELECT name, COUNT(email) 
FROM users
GROUP BY email
HAVING COUNT(email) > 1

所以如果我们有一张桌子

ID   NAME   EMAIL
1    John   asd@asd.com
2    Sam    asd@asd.com
3    Tom    asd@asd.com
4    Bob    bob@asd.com
5    Tom    asd@asd.com

该查询将为我们提供John,Sam,Tom,Tom,因为它们都相同email

但是,我想要的是获取具有email 和的 重复项name

也就是说,我想获得“ Tom”,“ Tom”。

我需要这个的原因:我犯了一个错误,并允许插入重复项nameemail值。现在,我需要删除/更改重复项,因此我需要先 找到 它们。


问题答案:

SELECT
name, email, COUNT()
FROM
users
GROUP BY
name, email
HAVING
COUNT(

) > 1

只需将两个列都分组即可。

注意:较早的ANSI标准将在GROUP
BY中包含所有非聚合的列,但是随着“功能依赖”的思想而改变了这一点:

在关系数据库理论中,功能依赖关系是数据库中某个关系中两组属性之间的约束。换句话说,功能依赖性是描述关系中属性之间关系的约束。



 类似资料:
  • 问题内容: 我有一张很大的桌子,上面有关于用户的以下数据。 我想在ssn等于但名称不等于的表中找到所有可能的重复项 我的尝试是: 问题答案: 在SSN上进行分组应该做到这一点 ~~~~ ..或如果每个ssn有很多行,而只想查找重复的名称) 编辑,糟糕,被误解

  • 问题内容: 我有一个包含以下字段和示例数据的SQL Server表: 该列的每一行都有唯一的值。 该列有重复项。 我希望能够根据该列查找重复项,并在其旁边列出重复项的s,并以逗号分隔。 以上样本数据的预期输出: 表中还有其他列我不想考虑此查询。 感谢你的帮助! 问题答案: SQL提琴手

  • 问题内容: SQL查找重复条目(在组内) 我有一个小问题,我不确定修复它的最佳方法是什么,因为我对数据库(Oracle)本身的访问有限。在我们的“ EVENT”表中,我们大约有16万个条目,每个EVENT都有一个GROUPID,而一个普通条目恰好有5行具有相同的GROUPID。由于一个错误,我们目前有几个重复的条目(重复,所以10行而不是5行,只是一个不同的EVENTID。这可能会更改,因此只是<

  • 问题内容: 我想在中显示值。A 可能有重复的值(但没有重复的键),但是我只想显示一个值。 因此,我应该查找是否具有重复值。我知道我们可以迭代并使用的返回布尔值。我想知道是否存在任何方法来查找map中的重复值,还是我应该自己编写代码? 问题答案: 一个简单的解决方案是将值列表的大小与设置的值进行比较。

  • 我想知道如何实现以下操作:我有两个arraylists,其中的值相互关联。也就是说,同一索引上的arraylists的元素彼此相关。例如:ArrayList1(String ArrayList)=[id1,id2,id3,id2,id2,id1]。ArrayList2(整数ArrayList)=[2,3,2,5,6,3]。 我想创建2个新的arraylists与重复的值不再存在。在上面的例子中,新