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;
我有这样的信息:
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;