1
resposta

Resolução - total de empréstimos ativos por cidade

Boa tarde!

SELECT
    CIDADE,
    COUNT(*) AS TOTAL_EMPRÉSTIMOS_ATIVOS
FROM CLIENTES
JOIN
    EMPRESTIMO
ON
    CLIENTES.ID_CLIENTE = EMPRESTIMO.ID_CLIENTE
WHERE
    STATUS = 1
GROUP BY CIDADE;

Saída:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Estudante. Como vai?

Parabéns por mais uma excelente resolução! Seu código SQL está impecável e atinge perfeitamente o objetivo do exercício, demonstrando que você compreendeu muito bem a mecânica de agrupamentos e contagens no banco de dados.

Analisando a imagem do resultado, a consulta retornou exatamente o que foi proposto. Gostaria de destacar os pontos fortes da estrutura do seu script:

  • Filtragem Precisa com o WHERE: Filtrar por STATUS = 1 antes de realizar o agrupamento é a estratégia correta e mais performática. Isso garante que o banco de dados descarte os registros inativos logo no início, contando apenas o que realmente importa (os empréstimos ativos).
  • Uso Perfeito do GROUP BY: A cláusula GROUP BY CIDADE combinada com a função de agregação COUNT(*) funcionou perfeitamente. O SQL separou as linhas em "gavetas" por cidade e contou quantas ocorrências ativas existiam dentro de cada uma delas.

Como sugestão de boa prática para enriquecer ainda mais o seu desenvolvimento em banco de dados, vale o mesmo ponto de atenção sobre a ambiguidade que comentamos anteriormente: o uso de aliases (apelidos) para as tabelas.

Além disso, em sistemas que possuem bancos de dados muito grandes, utilizar o caractere coringa COUNT(*) obriga o banco a ler todas as colunas de todas as linhas filtradas para efetuar a contagem. Uma convenção de mercado muito utilizada para otimizar a performance é contar diretamente a chave primária da tabela que você está mensurando.

Veja como o seu código ficaria aplicando essas duas boas práticas (apelidos e contagem direcionada):

SELECT
    c.CIDADE,
    COUNT(e.ID_EMPRESTIMO) AS TOTAL_EMPRÉSTIMOS_ATIVOS
FROM 
    CLIENTES c
JOIN
    EMPRESTIMO e ON c.ID_CLIENTE = e.ID_CLIENTE
WHERE
    e.STATUS = 1
GROUP BY 
    c.CIDADE;

Repare que ao usar COUNT(e.ID_EMPRESTIMO), deixamos claro para o motor do banco de dados qual coluna ele deve computar, tornando a consulta mais rápida e explícita para quem lê o código.

Seu progresso nos desafios de SQL e consultas complexas está excelente. Continue com esse ótimo ritmo de estudos!

Espero que possa ter lhe ajudado!