sql配置单元|表中的重复行

q5iwbnjs  于 2021-06-25  发布在  Hive
关注(0)|答案(4)|浏览(307)

我有一个这样的表,其中的键是[c\u 1,c\u 2,c\u 3],我想在我的表中不重复。
输入:

C1    C2    C3   C4   C5
A1    D1    V1   X1   F3         
A2    D1    V1   X2   F2
A1    D1    V1   X1   F3        
A2    D1    V1   X2   F2        
A4    D1    V2   X1   F3         
A2    D1    V1   X1   F3

输出:

C1    C2    C3   C4   C5
A1    D1    V1   X1   F3         
A2    D1    V1   X2   F2               
A4    D1    V2   X1   F3

当做,

2skhul33

2skhul331#

您可以通过以下方式选择非重复数据:

SELECT DISTINCT * FROM Table

然后可以截断表并将上述结果插入到表中。

relj7zay

relj7zay2#

你可以用 ROW_NUMBER() 窗口功能:

select t.c1, t.c2, t.c3, t.c4, t.c5
from (
  select *, row_number() over (partition by c1, c2, c3 order by c4, c5) rn
  from tablename
) t
where t.rn = 1

您可以删除 order by c4, c5 如果你对订单的第一行不感兴趣的话。

64jmpszr

64jmpszr3#

你想怎么做就怎么做?

select c1, c2, c3, max(c4), max(c5)
from t
group by c1, c2, c3;

这并不能保证 c4 以及 c5 来自同一行,但它确实保证 c1 / c2 / c3 只出现一次。

kkbh8khc

kkbh8khc4#

请尝试以下操作:

insert overwrite table yourtable select distinct * from yourtable;

相关问题