如何使用语句以查找某些字段上的重复项?

  • 回答 (2)
  • 关注 (0)
  • 查看 (60)

如何用sql语句?

例如,在伪代码中:

select count(field1,field2,field3)

from table

where the combination of field1, field2, field3 occurs multiple times

从上面的陈述中,如果有多个事件,我想选择除了第一个以外的每个记录。

_Europa_Europa提问于
心愿回答于

你提到“第一个”,所以我假设你有一些对你的数据进行排序。假设您的数据是按某个字段排序的ID。

这个SQL应该会得到除第一个以外的重复条目。它基本上选择所有具有(a)相同字段和(b)较低ID的行存在的行。性能不会很好,但它可能会解决您的问题。

SELECT A.ID, A.field1, A.field2, A.field3
  FROM myTable A
 WHERE EXISTS (SELECT B.ID
                 FROM myTable B
                WHERE B.field1 = A.field1
                  AND B.field2 = A.field2
                  AND B.field3 = A.field3
                  AND B.ID < A.ID)
akjok54stay hungry stay foolish回答于

要获取有多个记录的字段列表,可以使用..

select field1,field2,field3, count(*)
  from table_name
  group by field1,field2,field3
  having count(*) > 1

请查看此链接以获取有关如何删除行的更多信息。

http://support.microsoft.com/kb/139444

编辑:正如其他用户提到的,在上面的链接中使用该方法之前,应该有一个标准来决定如何定义“第一行”。基于此,如果需要,您将需要使用order by子句和子查询。如果你可以发布一些样本数据,那真的很有帮助。

扫码关注云+社区

领取腾讯云代金券