如何使用ROW_NUMBER(),而不从表中列出的所有列删除重复。我有50个多列的蜂巢表。如果我想基于2列删除重复下面是我遵循的步骤
Create temptable as select * from (select
*,row_number() over(col1,col2) as rn from maintable) where rn=1)
Insert overwrite table maintable select * from temptable
但在这里把它插入失败,因为新列rn
存在于不是Temptable;为了避免这个专栏中,我将不得不列出列的所有的休息。
并且在蜂巢没有下降栏选项。此外,还需要使用REPLACE函数,它需要再次列出列的所有的休息。
因此,基于2列删除在蜂巢重复任何更好的主意?
拼出从原来的表insert overwrite
所有列名作为查询计算新列。需要对这个没有临时表。
Insert overwrite table maintable
select col1,col2,col3 ---...col50
from (select t.*
,row_number() over(order by col1,col2) as rn
from maintable
) t
where rn = 1