题解 | 分析客户逾期情况

分析客户逾期情况

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

-- 从连接后的表中选择需要的列
SELECT
    -- 选择 customer_tb 表中的 pay_ability 列,该列可能表示客户的支付能力
    c.pay_ability,
    -- 计算逾期比率,使用 AVG 函数结合 CASE WHEN 语句来统计逾期情况
    -- case when l.overdue_days is null then 0 else 1 end 表示如果逾期天数为空,则视为未逾期,记为 0;否则视为逾期,记为 1
    -- AVG(case when l.overdue_days is null then 0 else 1 end) 计算逾期的平均比例
    -- round( 100 * AVG(case when l.overdue_days is null then 0 else 1 end),1) 将逾期比例乘以 100 并保留一位小数
    -- concat(round( 100 * AVG(case when l.overdue_days is null then 0 else 1 end),1), '%') 将计算结果转换为百分比形式
    concat(round( 100 * AVG(case when l.overdue_days is null then 0 else 1 end),1), '%') as overdue_ratio
FROM 
    -- 指定主表为 customer_tb,并使用别名 c
    customer_tb c
    -- 通过 customer_id 列将 customer_tb 表和 loan_tb 表进行内连接
    -- 确保只选择在两个表中都有匹配记录的客户信息
    JOIN loan_tb l
    ON c.customer_id = l.customer_id
-- 按照客户的支付能力进行分组
-- 以便对每个支付能力组内的数据进行聚合计算(如计算逾期比率)
GROUP BY c.pay_ability
-- 按照逾期比率降序排序结果
-- 使逾期比率高的支付能力组排在前面
ORDER BY overdue_ratio DESC;

#SQL面试##笔试##互联网回暖,腾讯要招5000人!#
【鲸析】SQL干货分享 文章被收录于专栏

专注分享DA/DS求职大厂面试题目

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务