如何在没有任何主键的情况下,在SQL中找到重复记录?

24 浏览
0 Comments

如何在没有任何主键的情况下,在SQL中找到重复记录?

有没有办法在表中找到非唯一的记录?

我有一个表,其中可能存在完全相同的记录。表中包含超过1000万条记录。

ID Name
1  hello
1  hello
2  world
2  world
3  yikes

我想选择所有出现超过一次的记录的单个副本。我希望从上面的表中得到这个结果。

ID Name
1  hello
2  world

0
0 Comments

在SQL中查找重复记录的方法是一项常见的任务。通常情况下,我们可以使用主键来唯一标识每一行数据,然后通过对比主键的值来判断是否存在重复记录。然而,在某些情况下,数据表可能没有主键,这时就需要另外的方法来找出重复记录。

解决这个问题的方法是使用GROUP BY语句结合HAVING语句。下面是具体的操作步骤:

1. 使用GROUP BY语句按照多个列进行分组。在这个例子中,我们按照idname两列进行分组。

2. 然后使用HAVING语句来排除只有一行的分组。通过COUNT(*)函数来计算每个分组的行数,只有行数大于1的分组才包含重复记录。

下面是具体的SQL查询语句:

SELECT id, name
FROM table
GROUP BY id, name
HAVING COUNT(*) > 1

这个查询语句将返回所有包含重复记录的idname的值。我们可以根据实际情况来修改查询语句,以适应不同的列和条件。

通过使用GROUP BYHAVING语句,我们可以在没有主键的情况下找到重复记录。这种方法简单有效,可以帮助我们处理数据表中的重复数据问题。

0