我的表中有重复的行,我想以最有效的方式删除重复项,因为表很大.经过一番研究,我得出了这个问题:
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;
Run Code Online (Sandbox Code Playgroud)
但它只适用于SQL,而不适用于Netezza.它似乎不喜欢DELETE后面的WITH条款?
假设我有一张桌子 -
A B C
1 3 5
1 3 7
1 3 9
2 4 3
2 4 6
2 4 1
Run Code Online (Sandbox Code Playgroud)
这里有 A 和 B 的相同组合的多个副本。对于每个组合,我想要回它的第一个条目。所以我想要这个表的结果是-
A B C
1 3 5
2 4 3
Run Code Online (Sandbox Code Playgroud)
我怎样才能在 postgres sql 中做到这一点?