题解 | 分析客户逾期情况

分析客户逾期情况

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’字符串。

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务