题解 | 分析客户逾期情况
分析客户逾期情况
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求职大厂面试题目