2016-03-10 5 views
0

Мои данные уже сортируются по убыванию last_column и нисходящему третьему столбцу. Я хочу дедуплицировать набор данных на основе last_column, сохраняя исходный порядок сортировки. Поэтому для каждого last_column я хочу первую строку в этом конечном выходе. Мне нужно добиться этого с помощью Hive. Мои данные:Как удалить файл и сохранить исходный порядок сортировки в 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 
Может

кто-нибудь, пожалуйста, помочь и предложить что я могу делать неправильно?

ответ

1

@Utsav вы можете попробовать следующий запрос:

выберите * от (выберите *, row_number() над (раздел по LAST_COLUMN порядке по third_column DESC) при г из table_name) S, где г = 1, порядок по LAST_COLUMN по убыванию;

Надеюсь, это поможет!

Смежные вопросы