SELECT
Tipo,
(SELECT AVG(Valor)
FROM TabelaPagamentos tp
WHERE tp.id_emprestimo = te.id_emprestimo
AND Status = 'Pago') AS MediaPagamentos
FROM TabelaEmprestimo te;
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
SELECT
Tipo,
(SELECT AVG(Valor)
FROM TabelaPagamentos tp
WHERE tp.id_emprestimo = te.id_emprestimo
AND Status = 'Pago') AS MediaPagamentos
FROM TabelaEmprestimo te;
E aí, Márcia! Tudo bem?
Parabéns! Mantenha o ritmo nos exercícios.
Percebi que você praticou o uso de uma subquery correlacionada, aplicou muito bem a função de agregação AVG() para calcular médias e ainda entendeu a relevância de filtrar resultados com condições específicas para obter informações mais precisas.
Uma sugestão para evoluir ainda mais é usar JOIN com GROUP BY com o objetivo de simplificar a consulta e melhorar a performance. Veja só:
SELECT te.Tipo,
AVG(tp.Valor) AS MediaPagamentos
FROM TabelaEmprestimo te
JOIN TabelaPagamentos tp
ON tp.id_emprestimo = te.id_emprestimo
WHERE tp.Status = 'Pago'
GROUP BY te.Tipo;
Resultado: Lista de tipos de empréstimos e a média de pagamentos quitados de cada um.
Essa abordagem ajuda a deixar a query mais performática, especialmente em bases de dados grandes.
Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:
Fico à disposição! E se precisar, conte sempre com o apoio do fórum.
Abraço e bons estudos!