Как выбрать столбец, соответствующий максимальному значению (SQL - импала) - PullRequest
0 голосов
/ 15 апреля 2020

Я проверил историю, и есть некоторые ответы на подобные проблемы, но они кажутся слишком сложными.

У меня есть такая таблица:

CUSTOMER_ID    SELLER_ID     MONTH     ITEMS_SOLD
1                A          201702      3
1                B          201702      2
2                X          201902      7
2                Y          201902      8

Я хотел бы перечислить столбцы ( покупатель, продавец и месяц) соответствует только максимальному количеству проданных товаров. Желаемый результат будет:

CUSTOMER_ID    SELLER_ID     MONTH     
1                A          201702      
2                Y          201902      

1 Ответ

0 голосов
/ 15 апреля 2020

Использовать оконные функции:

select t.*  -- list whichever columns you really want
from (select t.*,
             row_number() over (partition by customer_id order by items_sold desc) as seqnum
      from t
     ) t
where seqnum = 1;

Примечание. Если несколько месяцев имеют один и тот же максимум для клиента, это произвольно выбирает один из них. Если вы хотите все из них, то используйте rank() вместо row_number().

...