题解 | 分析客户逾期情况
分析客户逾期情况
https://www.nowcoder.com/practice/22633632da344e2492973ecf555e10c9
select
ct.pay_ability,
CONCAT(
ROUND(SUM(CASE WHEN lt.overdue_days is not null THEN 1 ELSE 0 END)/COUNT(*)*100,1),'%') as overdue_ratio
FROM
loan_tb as lt inner join customer_tb as ct
on lt.customer_id = ct.customer_id
group by ct.pay_ability
ORDER BY overdue_ratio DESC
知识点
CASE WHEN lt.overdue_days IS NOT NULL THEN 1 ELSE 0 END:判断客户是否有逾期行为,overdue_days字段不为NULL即记作1,否则记作0。
SUM(...):计算有逾期行为的客户数量,即上一步记作1的客户数量。
COUNT(*):计算总客户数量。
ROUND(...,1):将结果四舍五入保留一位小数。
CONCAT(...,'%'):输出格式为‘数字’+‘%’,此处使用字符串操作,CONCAT(A,B)即将A字符串和B字符串连接成‘AB’字符串。
查看10道真题和解析