SELECT
Tipo,
(SELECT AVG(Valor)
FROM TabelaPagamentos tp
WHERE tp.id_emprestimo = te.id_emprestimo
AND Status = 'Pago') AS MediaPagamentos
FROM TabelaEmprestimo te;
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!