日期:2014-05-17  浏览次数:20921 次

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