我的表格中有col1
,col2
列(以及其他一些列)。
col1, col2
1, 2
2, 1
2, 2
在我的情况下,记录1,2和2,1相同,如何使用这种重复定义对表进行重复数据删除?
答案 0 :(得分:3)
要仅选择这些行,请使用:
select distinct
least(col1,col2) as col1,
greatest(col1,col2) as col2
from the_table;
答案 1 :(得分:0)
您可以执行以下操作。也可以将其扩展为两列以上。只需在concat中添加列,然后使用split_part添加更多列
select split_part(split_k,',',1) as col1 ,split_part(split_k,',',2) as col2 from
(
select distinct string_agg(split,',' order by split) as split_k from
(
select row_number() over () as row_num,unnest(string_to_array(concat(col1,',',col2),',')) as split from new
)t
group by row_num
)k