Laboratório prático: monte relatório de vendas
Combine filtro, agregação e regra de negócio em uma consulta.
- Produzir relatório mensal determinístico a partir de vendas brutas.
Consultas de relatório em produção costumam ter etapas: filtrar linhas de origem, agregar métricas e derivar indicadores finais. Este laboratório simula esse fluxo com dados de vendas.
1WITH monthly AS (
2 SELECT month,
3 region,
4 SUM(total) AS revenue
5 FROM sales
6 WHERE status = 'paid'
7 GROUP BY month, region
8)
9SELECT month, region, revenue
10FROM monthly
11ORDER BY month, region;Ordenação determinística (ORDER BY) torna relatório reproduzível em testes e integrações. Deixe regras de negócio explícitas para facilitar manutenção futura.
Principais conclusões
Produzir relatório mensal determinístico a partir de vendas brutas.
Use nomes de tabela e coluna que tornem a consulta legível.
Confirme quais linhas a consulta afeta antes de depender do resultado.
Quiz da aula
5 perguntas · aprovação com 4 acertos · até 50 XP
Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.
Pratique: escreva consultas SQL
Escreva consultas em pequenos bancos de dados de exemplo e execute-as localmente no navegador. Cada teste começa com um banco SQLite novo.
Monte relatório mensal de receita paga
Considere apenas vendas pagas e retorne month, region, revenue e rótulo performance (target se revenue >= 100, senão watch), ordenando por month e region.
- Receita paga por mês e região
Tabelas e registros de exemplo
Cada teste recria um banco de dados em memória no dialeto escolhido antes de executar a consulta.
CREATE TABLE sales (month TEXT, region TEXT, total REAL, status TEXT); INSERT INTO sales VALUES ('2026-01', 'north', 60, 'paid'), ('2026-01', 'north', 50, 'paid'), ('2026-01', 'south', 40, 'paid'), ('2026-01', 'south', 15, 'pending'), ('2026-02', 'north', 80, 'paid'), ('2026-02', 'south', 130, 'paid');Usando SQLite 3 (sql.js), um banco de dados embutido. As consultas rodam localmente em um worker, com um banco em memória novo a cada teste.
Dúvidas sobre esta lição
Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.
Carregando publicações…