SQL难题求发放贷款额度最高的银行
问题是这样的,求客户对应的发放贷款额度最高的银行。如果遇到发放额度相同的银行,则按升序,取第一个银行。
表1:客户信息
客户ID, 客户名
1 小明
2 小芳
表2:客户贷款信息
客户ID, 贷款金额 发贷银行
1 100万 银行1
1 200万 银行2
1 200万 银行3
2 150万 银行5
2 200万 银行4
获得的结果应该是
客户ID 客户名 贷款额度最大行
1 小明 银行2
2 小芳 银行4
有没有高手帮忙看看啊?实在想不出来。
------解决方案--------------------问题很简单,使用一个函数即可解决问题,具体SQL如下:
select cust_id,cust_name,loan_bank,loan from (
select a.cust_id,
a.cust_name,
b.loan_bank,
b.loan_num as loan,
row_number() over(partition by b.cust_id order by b.loan_num desc) as num
from cust_info a, cust_loan_info b
where a.cust_id = b.cust_id)
where num = 1