vertica - 删除 Vertica 数据库中的重复行

标签 vertica

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

最佳答案

您应该尽量避免/限制对大量记录使用 DELETE。以下方法应该更有效:

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

create table mytable_new like mytable including projections ;

步骤 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 ;

步骤 3 重命名原始表(包含重复的表):
alter table mytable rename to mytable_orig ;

第 4 步 重命名新表:
alter table mytable_new rename to mytable ;

就这样。

关于vertica - 删除 Vertica 数据库中的重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17200239/

相关文章:

sql - 在 Vertica 中将 MAC 地址转换为整数

java - Vertica VerticaDayTimeInterval 精度存储错误

sql - 数据仓库重复维度行

sql - 如何保存sql中的最后一个检查点以用于下一行

python - vertica-python 复制本地时出错

使用 vertica-python 将 Python pandas 数据帧转换为 vertica 表

sql - 在 Vertica 数据库内全局创建倒排索引

sql - 如何找出一对多条目

sql - 如何查询vertica中聚合的百分比

python - 为什么我在表中添加列后,vertica 没有摄取数据?