Hive - 从一堆列中获取最大值

Hive - Get a max values from a bunch of columns

我有这样的信息:

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

我想获得日期的最大值,然后是金额的最大值。如果有重复的,我只想要一个。

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

我可以使用多个连接和过滤来完成此操作,但我想知道是否有任何分析函数可以使其更高效和可读。也欢迎任何使用高效连接的技巧。谢谢

您可以使用 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;