题解 | #分析客户逾期情况#
分析客户逾期情况
https://www.nowcoder.com/practice/22633632da344e2492973ecf555e10c9
WITH T1 AS ( SELECT C.customer_id, C.pay_ability, L.overdue_days FROM customer_tb C LEFT OUTER JOIN loan_tb L ON C.customer_id=L.customer_id ) SELECT pay_ability, CONCAT(ROUND((COUNT(overdue_days)/COUNT(1))*100, 1), '%') AS overdue_ratio FROM T1 GROUP BY pay_ability ORDER BY OVERDUE_RATIO DESC ;
左外连接可以将null也连接到左表中,先把底表联完存在临时表T1里
count(某列)是不会计算null值的,count(1)则不管是否null都会计入,所以两者相除,group by 等级ABC就可以得到要求的ratio
输出数字的格式 A/B默认是小数,0.66666这样,先*100,再用round留一位小数点,最后用concat加上%,就可以了