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