--存在同一用户有多次逾期行为所以不能直接count overdue_days
--存在该用户没有贷款记录的情况
SELECT 
    c.pay_ability,
    CONCAT(ROUND(100.0 * COUNT(DISTINCT 
                            CASE WHEN l.overdue_days IS NOT NULL THEN l.customer_id 
                            END) / COUNT(DISTINCT c.customer_id), 1),'%') AS overdue_ratio
FROM customer_tb c
LEFT JOIN loan_tb l ON c.customer_id = l.customer_id
GROUP BY c.pay_ability
ORDER BY overdue_ratio DESC;