SELECT
c.Nome AS nome_cliente
, e.Valor AS valor_emprestimo
FROM tabelaclientes AS c
LEFT JOIN tabelaemprestimo AS e ON c.id_cliente = e.id_cliente
WHERE 1=1
AND (e.Valor > (SELECT AVG(valor) FROM tabelaemprestimo))
;
SELECT
c.Nome AS nome_cliente
, e.Valor AS valor_emprestimo
FROM tabelaclientes AS c
LEFT JOIN tabelaemprestimo AS e ON c.id_cliente = e.id_cliente
WHERE 1=1
AND (e.Valor > (SELECT AVG(valor) FROM tabelaemprestimo))
;
Oi, Carlos Eduardo! Como vai?
Agradeço por compartilhar seu exercício de resolução e análise de desempenho de empréstimos por cliente aqui na comunidade Alura. É muito enriquecedor ver esse tipo de prática sendo compartilhada para o aprendizado coletivo.
Vamos à análise do seu código. Você utilizou o SELECT de forma bem estruturada para selecionar os campos nome_cliente e valor_emprestimo, trazendo as informações relevantes de forma clara. A combinação dos dados entre tabelaclientes e tabelaemprestimo por meio do LEFT JOIN com a chave id_cliente está correta e garante que todos os clientes sejam considerados na consulta, mesmo aqueles que ainda não possuem registros na tabela de empréstimos.
Outro ponto positivo é o uso da subconsulta com AVG() dentro do WHERE, filtrando apenas os empréstimos com valor acima da média geral registrada na tabelaemprestimo. Essa é uma abordagem muito utilizada em análises financeiras reais e demonstra um bom entendimento sobre subconsultas correlacionadas.
A estrutura com WHERE 1=1 também merece destaque especial. Ela pode parecer redundante à primeira vista, mas facilita bastante a manutenção do código, permitindo adicionar novos filtros com AND sem precisar reescrever ou reorganizar a cláusula inteira. É uma boa prática muito valorizada em ambientes profissionais.
Continue explorando essas possibilidades, pois cada detalhe faz diferença na qualidade e na legibilidade das suas consultas SQL.
Pensando em evoluir ainda mais essa consulta, você já considerou incluir uma coluna que exiba a média geral dos empréstimos ao lado de cada registro, para facilitar a comparação direta no próprio resultado da query?