我的数据已经按last_column降序和third_column降序进行了排序。我想在保持原始排序顺序的基础上对基于last_column的数据集进行重复数据删除。因此,对于每个last_column,我都希望最终输出中的第一行。我需要使用Hive来实现。我的数据是:
10009,12/3/1959,Rodney,Purtle,M,8/28/1986,d007
10010,5/1/1954,Ahishek ,Kumar,M,12/1/1986,d007
10011,1/21/1955,Abhilash,Whatever,M,9/12/1989,d007
10016,5/1/1954,Ross,Hupchuck,M,12/1/1986,d006
10008,1/21/1955,Michael ,Gross,M,9/12/1989,d006
10014,1/21/1955,John ,Talburt,M,9/12/1989,d006
10013,5/1/1954,John,Doe,M,12/1/1986,d006
10015,12/3/1959,Daniel ,Pullen,M,8/28/1986,d006
所需的输出:
10009,12/3/1959,Rodney,Purtle,M,8/28/1986,d007
10016,5/1/1954,Ross,Hupchuck,M,12/1/1986,d006
我当前的代码:
select *
from
(select *, row_number() over (partition by last_column order by desc)as r from table_name)s
where r = 1;
我得到的输出是:
10014 1/21/1955 John Talburt M 9/12/1989 d006 1
10010 5/1/1954 Ahishek Kumar M 12/1/1986 d007 1
谁能帮忙,建议我可能做错了什么?
@Utsav您可以尝试以下查询:
select * from(select *,row_number()over(按last_column顺序划分,由third_column desc划分,如table_name中的r),其中r = 1按last_column desc排序;
希望能帮助到你!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句