Segue a maneira como realizei o exercício, acho interessante ir fazendo anotações nas linhas de códigos para fixar e também lembrar o que faz cada função.
SELECT
UPPER(e.cidade) AS cidade, -- Converte o nome da cidade para letras maiúsculas
COUNT(a.avaliacao_id) AS total_avaliacoes, -- Conta o número total de avaliações
AVG(a.nota) AS media_notas -- Calcula a média das notas de avaliação
FROM
Hospedagens h
JOIN
Avaliacoes a ON h.hospedagem_id = a.hospedagem_id -- Junta as tabelas Hospedagens e Avaliações
JOIN
Enderecos e ON h.endereco_id = e.endereco_id -- Junta a tabela Endereços
GROUP BY
e.cidade -- Agrupa os resultados por cidade
ORDER BY
media_notas DESC, total_avaliacoes DESC; -- Ordena os resultados por cidade