删除Vertica数据库中的重复行

Ami*_*mit 4 vertica

Vertica允许将重复项插入表中.我可以使用'analyze_constraints'函数查看它们.如何从Vertica表中删除重复的行?

mau*_*uro 7

您应该尝试使用具有大量记录的DELETE来避免/限制.以下方法应该更有效:

步骤1创建一个新表,其结构/投影与包含重复项的结构/投影相同:

create table mytable_new like mytable including projections ;
Run Code Online (Sandbox Code Playgroud)

步骤2在这个新表中插入重复数据删除的行:

insert /* +direct */ into mytable_new select <column list> from (
    select * , row_number() over ( partition by <pk column list> ) as rownum from <table-name>
) a where a.rownum = 1 ;
Run Code Online (Sandbox Code Playgroud)

步骤3重命名原始表(包含dups的表):

alter table mytable rename to mytable_orig ;
Run Code Online (Sandbox Code Playgroud)

第4步重命名新表:

alter table mytable_new rename to mytable ;
Run Code Online (Sandbox Code Playgroud)

就这样.


geo*_*son 3

从我的脑海中浮现出来,这不是一个很好的答案,所以让我们以这作为最终的答案,您可以删除两者并重新插入一个。