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