with 
table1 as(
    select
        c.city,
        round(sum(a.loan_amount),2) as total_loan_amount,
        round(sum(a.loan_amount)/count(distinct a.customer_id),2) as average_loan_amount,
        count(distinct a.customer_id) as total_customers
    from loan_applications a
    left join
    (select
        t1.loan_type_id,
        t2.application_id,
        t1.loan_type_name
    from loan_types t1 
    left join loan_application_types t2 on t1.loan_type_id=t2.loan_type_id
    ) t 
    on a.application_id=t.application_id
    left join customers c
    on a.customer_id=c.customer_id
    group by c.city),
table2 as(
    select
        c.city,
        t.loan_type_name,
        row_number() over(partition by c.city order by count(a.application_id) desc,t.loan_type_id) as rn
    from loan_applications a
    left join
    (select
        t1.loan_type_id,
        t2.application_id,
        t1.loan_type_name
    from loan_types t1
    left join loan_application_types t2 on t1.loan_type_id=t2.loan_type_id
    ) t 
    on a.application_id=t.application_id
    left join customers c
    on a.customer_id=c.customer_id
    group by c.city,t.loan_type_id,t.loan_type_name)

select 
    table1.*,
    table2.loan_type_name as most_applied_loan_type
from table1 
left join (select city,loan_type_name from table2 where rn=1) table2
on table1.city=table2.city