Olá, Estudante. Como vai?
Parabéns pela resolução do exercício! O seu código SQL está excelente e demonstra uma compreensão sólida sobre o funcionamento de subconsultas (subqueries) não correlacionadas e junções de tabelas.
Analisando a imagem do resultado que você compartilhou, fica claro que a sua consulta funcionou perfeitamente. Gostaria de destacar duas ótimas práticas que você aplicou muito bem no seu script:
- Subconsulta no WHERE: Utilizar
(SELECT AVG(VALOR) FROM EMPRESTIMO) dentro da cláusula WHERE é a forma mais inteligente e dinâmica de resolver esse problema. Como o banco de dados calcula a média primeiro e depois filtra a tabela principal, o seu código continuará funcionando perfeitamente mesmo se novos empréstimos forem inseridos ou se os valores mudarem com o tempo. - Formatação com TO_CHAR: Essa função no Oracle SQL é fantástica. Configurar o formato
'L999G999G990D00' juntamente com o parâmetro 'NLS_NUMERIC_CHARACTERS = '',.'''' garante que a saída do banco de dados venha perfeitamente formatada na moeda local (R$), utilizando o ponto como separador de milhar e a vírgula como separador decimal. O resultado na imagem ficou super limpo e profissional!
Como uma única sugestão de boa prática para o seu dia a dia com SQL, quando trabalhamos com consultas que envolvem o agrupamento de mais de uma tabela (JOIN), é altamente recomendado utilizar apelidos (aliases) para as tabelas e adicioná-los antes de cada coluna selecionada.
Embora o seu código funcione perfeitamente porque os nomes das colunas NOME e VALOR parecem ser exclusivos de suas respectivas tabelas, se no futuro a tabela CLIENTES também ganhasse uma coluna chamada VALOR, o banco de dados retornaria um erro de ambiguidade. Veja como aplicar essa proteção de forma simples:
SELECT
c.NOME,
TO_CHAR(e.VALOR, 'L999G999G990D00', 'NLS_NUMERIC_CHARACTERS = '',.''') AS VALOR
FROM
CLIENTES c
JOIN
EMPRESTIMO e ON c.ID_CLIENTE = e.ID_CLIENTE
WHERE
e.VALOR > (SELECT AVG(VALOR) FROM EMPRESTIMO);
Repare que ao apelidar CLIENTES como c e EMPRESTIMO como e, o código fica ainda mais seguro, explícito e fácil de ler por outros desenvolvedores.
Continue com esse excelente empenho nos estudos de banco de dados!
Espero que possa ter lhe ajudado!