Hive - получить максимальные значения из группы столбцов - PullRequest
0 голосов
/ 18 октября 2019

У меня есть некоторая информация, подобная этой:

id. amt.  date.  
1.  23.    10/18
1.  20.    10/14
1.  22.    10/18
2.  10.    10/13
2.  10.    10/13

Я хочу получить максимум даты, а затем максимум amt. Если есть дубликаты, мне нужен только один.

1. 23.  10/18
2. 10.  10/13

Я могу сделать это, используя множественные объединения и фильтрацию, но мне было интересно, есть ли какие-нибудь аналитические функции, которые делают его более эффективным и читаемым. Любые приемы использования эффективных объединений также приветствуются. Спасибо.

1 Ответ

1 голос
/ 18 октября 2019

Вы можете использовать row_number():

select t.*
from (select t.*,
             row_number() over (partition by id order by date desc, amt desc) as seqnum
      from t
     ) t
where seqnum = 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...