次の形式のデータがあります
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です。金額が同じ場合は、最大期間のあるものを選択してください。期間が同じ場合も同様です。しかし、これら 3 つの組み合わせは常にユニークです。
出力列:
userid, amount, term, apr, numberOfRowsForEachUser
1 10 5 1 2
2 20 6 1 3
質問: 最初の 4 つの列を取得できますが、「オファーの総数」または「ユーザーごとの行の総数」を取得する方法がわかりません。
私のクエリは次のようになります。
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