热线电话:13121318867

登录
2020-07-25 阅读量: 2604
SQL 课后作业第五天

第1题和第3题不费什么劲就做出来了,第2题琢磨了几个小时,提交完成后一看答案,瞎啦!

第1题(审批通过的平均申请金额)眼瞎还是怎么回事?做的时候怎么没看到?,结果碰巧正确

第3题。。。。。。嗯,还是要考虑有重复的情况的!


至于第2题,琢磨几个小时都在纠结什么呢?逾期率:分子是大于30以上的剩余本金总和,那么分母呢?不应该也是大于30天的放款额总和吗?按照这个思路就是出不来结果(那个空值,筛选条件的时候真的好麻烦),第二天突然醒悟,分母可能是所有放款额总和不需要条件限制,嗯,然后就做出来了

1.每天的审批通过率及审批通过的平均申请金额

select apply_date 日期,avg(result='pass') 通过率,

sum((result='pass')*apply_prin)/sum(result='pass') 平均申请金额

from app_list

group by apply_date;



2.2018年2-5月份,不同费率的放款笔数、放款金额、30天以上金额逾期率(剩余本金/放款金额)

select product_rate 费率等级,count(*) 放款笔数,sum(loan_prin) 放款金额,
sum(if(overdue_days is null,0,if(overdue_days>30,loan_prin-paid_principal,0)))/sum(loan_prin) 30天以上逾期率
from loan_list
where year(loan_date)=2018 and month(loan_date) between 2 and 5
group by product_rate;


3.所有放款客户中,不同客群类型的人数占比

select groupp 客群类型,

count(distinct loan_list.id_no)/(select count(distinct id_no) from loan_list) 人数占比

from loan_list

left join customer on loan_list.id_no=customer.id_no

group by groupp;


有不同的思路的同学,欢迎评论交流。

41.4696
2
关注作者
收藏
评论(1)

发表评论
闪呀闪
2020-11-05

第二题

SELECT

product_rate AS 放款笔数,

loan_prin AS 放款金额,

ifnull(SUM((overdue_days>30)*(loan_prin-paid_principal))/SUM(loan_prin),0) AS 30天以上金额逾期率

FROM loan_list

WHERE year(loan_date)=2018 AND MONTH(loan_date)BETWEEN 2 AND 5

GROUP BY product_rate;


逻辑函数可以用IFNULL函数

0.0000 0 0 回复