【发布时间】:2015-01-02 08:50:23
【问题描述】:
我的表中有重复的行,我想以最有效的方式删除重复的行,因为表很大。经过一番研究,我想出了这个查询:
WITH TempEmp AS
(
SELECT name, ROW_NUMBER() OVER(PARTITION by name, address, zipcode ORDER BY name) AS duplicateRecCount
FROM mytable
)
-- Now Delete Duplicate Records
DELETE FROM TempEmp
WHERE duplicateRecCount > 1;
但它只适用于 SQL,而不适用于 Netezza。好像不喜欢WITH子句后面的DELETE?
【问题讨论】:
-
如果它是一次性工作 - 为什么不在 postgresql 控制台中运行它?
-
这不是一次工作,而是每周一次,我们总是得到一些重复的值。谢谢
-
为什么会得到重复值?如果你只是不把它放在第一位呢?
-
列
(name, address, zipcode)定义了重复项吗?还有其他列吗?那些无关紧要吗?不同的?列的任何组合是唯一的吗?如果某些列在重复项之间存在差异,您要保留每组中的哪一行? -
适用于 POSTGRESQL(也适用于 AWS REDSHIFT)View the answer to this question on another page
标签: sql database postgresql duplicates netezza