提取与一个ID相关联的不同费率

时间:2017-11-22 20:55:13

标签: sql sqlite

我有一个贷款数据库,其中包含user_id,loan_id,interest_rate,loan_date以及其他与此无关的内容。 如何为那些至少获得两笔贷款的人提取所有user_id,并让后者以更高的利率获得贷款。

select member_id, Annual_interest_rate, count(*)
from (select member_id, Annual_interest_rate, count(*)
from loan_book
group by member_id
having count(*)>1)
group by member_id, Annual_interest_rate

它显示子查询中的内容,但是计数1而不是计数2 子查询是否会破坏必要的信息?有没有办法把它写成一个查询?

样本表

user loan air date
0001 2345 2.6 09/03
0002 1346 2.6 03/05
0003 1118 3.7 05/03
0002 6756 1.2 05/08
0003 1286 3.2 01/10
0001 2222 3.0 09/11

结果将是:

user loan air date
0002 6756 2.6 05/08
0003 1286 3.2 01/10
因为这两笔贷款利率比前任利率更高。如果有两个以上,那么优于其前任者的那个应该显示

1 个答案:

答案 0 :(得分:0)

这是一个可能有用的查询,或者至少这种方法可能会对某些想法有所帮助。

SELECT LB2.*
FROM loan_book LB1 INNER JOIN loan_book LB2
ON LB1.user_id = LB2.user_id
  AND LB1.loan_id != LB2.loan_id
  AND LB1.loan_date < LB2.loan_date
  AND LB1.interest_rate > LB2.interest_rate

您自己加入表格,以便每个用户在每一行中都有两笔贷款,然后您可以从结果中进行必要的比较和分组。希望这可以帮助。