查找和删除因一个字段而异的重复记录

时间:2014-01-09 06:18:31

标签: sql

我有一个18列的费率表。现在有几行,其中所有17列具有相同的值但在第18列中不同(17列作为输入,第18列是我的输出)。我想找出所有这些行并删除它们。

2 个答案:

答案 0 :(得分:1)

根据您的数据库,以下SQL可能有效:

DELETE FROM myTable
WHERE (col1, col2, ..., col17)
IN (
  SELECT col1, col2, ..., col17
  FROM myTable
  GROUP BY col1, col2, ..., col17
  HAVING COUNT(*) > 1
);

答案 1 :(得分:0)

我将为GROUP BY 17个字段创建一个查询,然后查看重复项存在的位置。根据这些结果,您可以确定要删除的内容。

SELECT Field1..Field17, COUNT(Field18) AS Dups
FROM ... Table
GROUP BY Field1, Field2, Field3,.... Field17
HAVING COUNT(Field18) > 1