我有以下格式的数据
userid amount term APR
1 10 5 1
1 10 4 2
2 20 6 1
2 20 4 3
2 20 3 1
我想按金额、期限、APR 进行排序,所以在输出中我想要最大数量,它是相应的期限 APR。如果金额相同,请选择具有最长期限的一项,如果期限也相同,则会发生相同的情况。但是这三者的结合总是独一无二的。
输出列:
userid, amount, term, apr, numberOfRowsForEachUser
1 10 5 1 2
2 20 6 1 3
问题:我能够获得前四列,但不确定如何获得“总报价”或“每个用户的总行数”。
我的查询看起来像这样。
select
userid,amount,term,apr
from
( select userid, amount, term, apr
RANK() OVER (PARTITION BY userid ORDER BY amount,term,apr) amount_rank,
from
tableXYZ
)
where amount_rank = 1