Objetivo: Evoluir do uso de SELECT básicos para consultas mais poderosas, aprendendo a usar subqueries para gerar relatórios inteligentes e detalhados — sempre com base na tabela VENDAS criada anteriormente.
Já vimos como filtrar (WHERE), ordenar (ORDER BY) e agrupar (GROUP BY). Agora vamos dar um passo além: usar resultados de uma consulta dentro de outra consulta.
Uma subquery é uma consulta dentro de outra. Pode aparecer em:
WHERE → para comparar resultados.FROM → como uma tabela temporária.SELECT → para trazer valores calculados.-- Listar produtos que custam mais do que a média de todas as vendas
SELECT produto, valor
FROM VENDAS
WHERE valor > (SELECT AVG(valor) FROM VENDAS)
ORDER BY valor DESC;
🎯 Objetivo: Comparar cada venda com a média geral de preços.
-- Para cada vendedor, mostrar sua maior venda
SELECT v.vendedor, v.produto, v.valor
FROM VENDAS v
WHERE v.valor = (
SELECT MAX(valor)
FROM VENDAS
WHERE vendedor = v.vendedor
);
🎯 Objetivo: Usar subquery correlacionada (WHERE vendedor = v.vendedor) para comparar dentro de cada grupo.