题解 | 贷款情况

贷款情况

https://www.nowcoder.com/practice/2817d353f0634208bcf0de74f56ca8f0

WITH
dataframe
    as (
        select
            la.*,
            cs.customer_name,
            cs.city,
            cs.age,
            lt.loan_type_name,
            lat.loan_type_id
        from
            loan_applications as la
            inner join customers as cs on la.customer_id = cs.customer_id
            inner join loan_application_types as lat on la.application_id = lat.application_id
            inner join loan_types as lt on lat.loan_type_id = lt.loan_type_id
    ),
rank_table as(
select * from 
(
select city,loan_type_name,
row_number() over(partition by city order by counting desc,loan_type_id asc) as ranking
from 
(
select city,loan_type_name,loan_type_id,count(*) as counting
from dataframe
group by city,loan_type_name,loan_type_id
) as A
) as A
where ranking = 1
)


select
    A.city,
    round(sum(loan_amount), 2) as total_loan_amount,
    round(sum(loan_amount)/count(distinct customer_id),2) as average_loan_amount,
    count(distinct customer_id) as total_customers,
    B.loan_type_name as most_applied_loan_type
from
dataframe as A
left join rank_table as B on A.city = B.city
group by A.city,B.loan_type_name


全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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