Aula 07: Consultas Avançadas e Agregações 🧪
O Poder dos Relatórios
Ricardo Pires
Bancos de Dados SQL e NoSQL
🎯 O que vamos aprender hoje?
- Funções de Agregação (Stats)
- Apelidos com AS
- Agrupamento (GROUP BY)
- Filtro de Grupos (HAVING)
- Consultas Dinâmicas
🧮 Funções de Agregação
Servem para resumir grandes volumes de dados:
- COUNT(): Contar 🔢
- SUM(): Somar 💰
- AVG(): Média 📈
- MIN() e MAX(): Extremos 📉
🔢 Contando com COUNT
- Quantas linhas no total? - UseCOUNT(DISTINCT cidade) para valores únicos.
💰 Somando com SUM
- Muito usado para faturamento, estoque e pontos. - OAS deixa o resultado bonitinho!
📈 Média com AVG
- Útil para KPIs e indicadores de performance.🧱 O Poder do GROUP BY
Você quer saber a média por disciplina?
- Divide a tabela em "baldes" antes de calcular.🎯 Filtrando com HAVING
O WHERE não funciona com funções de agregação!
-- Errado: WHERE AVG(nota) > 7
SELECT disciplina, AVG(nota)
FROM provas
GROUP BY disciplina
HAVING AVG(nota) > 7;
HAVING é o WHERE dos grupos! 🎯
🏷️ Apelidos (ALIAS)
Não deixe suas colunas com nomes como avg_1.
📊 Ordem de Execução do SQL
FROM: De onde vem?WHERE: Quem sai?GROUP BY: Como agrupa?HAVING: Qual grupo sai?SELECT: O que mostra?ORDER BY: Qual a ordem?
📉 Visualizando o Fluxo
graph TD
A[Dados] --> B[Filtrar Linhas]
B --> C[Agrupar]
C --> D[Calcular Média/Soma]
D --> E[Filtrar Grupos]
E --> F[Mostrar Resultado]
💻 Prática no pgAdmin
- Tente criar um ranking de vendas por categoria.
- Qual categoria é a campeã da sua loja? 🏆
🚀 Dica de Performance
- Agregações em tabelas de milhões de linhas podem ser lentas.
- Considere criar tabelas de "Resumo" ou usar Índices. ⚡
🏁 Resumo
- Agregações resumem dados
GROUP BYé o motor dos relatóriosHAVINGfiltra o que já foi calculadoASorganiza a exibição