蜂巢-从一堆列中获取最大值

时间:2019-10-18 17:15:21

标签: sql join hive hiveql

我有一些类似的信息:

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 个答案:

答案 0 :(得分:1)

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