【发布时间】:2018-05-02 22:49:04
【问题描述】:
我使用这个查询来获取所有重复的行:
SELECT count(*),col1, col2 from table GROUP BY col1, col2 having count(*)>1
我试过这个查询:
DELETE FROM TABLE WHERE (col1, col2) in (SELECT count(*),col1, col2 from table GROUP BY col1, col2
having count(*)>1 )
但由于选择语句中的count(*),它不起作用。
如何删除此查询的所有重复行? 谢谢
【问题讨论】:
-
您可以简单地从选择列表中删除计数。当然这会删除 all 重复的行,但您可能希望保留一行...
-
你必须使用一个中间表,假设你不想删除所有重复的行。
-
成功了,谢谢大家
-
您不必使用中间表。如果您需要定期运行此查询,您可以引入 row_number() 函数来确定字段集的优先级并删除 row_number()
标签: sql duplicates teradata