如何使用row\ u 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
但是在insert中它失败了,因为新列 rn
存在于诱惑之中;为了避免出现这个列,我必须列出所有其他列。
配置单元中没有drop column选项。您还需要使用replace函数,它需要再次列出所有其余的列。
那么,有没有更好的办法在基于2列的配置单元中删除重复项呢?
1条答案
按热度按时间bq3bfh9z1#
拼出原始表中的所有列名
insert overwrite
当查询计算新列时。不需要临时表。