我有一些类似的信息:
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
我可以使用多个联接和过滤来完成此操作,但是我想知道是否有任何分析功能可以使其更加高效和可读性。也欢迎使用高效联接的任何技巧。谢谢。
答案 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;