题解 | 分析客户逾期情况

分析客户逾期情况

https://www.nowcoder.com/practice/22633632da344e2492973ecf555e10c9

-- 第一步:连表,获取每个客户的还款能力级别和逾期天数
with t1 as (
    select 
        l.customer_id,
        l.overdue_days,
        c.pay_ability
    from loan_tb l
    left join customer_tb c on l.customer_id = c.customer_id
),

-- 第二步:标记是否违约(逾期天数 > 0 即为违约)
t2 as (
    select 
        customer_id,
        pay_ability,
        case when overdue_days > 0 then 1 else 0 end as is_overdue  -- 1表示违约,0表示未违约
    from t1
),

-- 第三步:按还款能力级别聚类分析
t3 as (
    select 
        pay_ability,
        count(customer_id) as total_customers,           -- 该级别总客户数
        sum(is_overdue) as overdue_customers              -- 该级别违约客户数
    from t2
    group by pay_ability
)

-- 第四步:计算违约率并格式化输出
select 
    pay_ability,
    concat(
        round(overdue_customers * 100.0 / total_customers, 1), 
        '%'
    ) as overdue_ratio
from t3
order by overdue_ratio desc;

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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