Carregando
0x60Lição 7 de 9

Organize lógica com subqueries e CTEs

Quebre perguntas complexas em etapas legíveis.

12 min Questionário com 5 perguntas 1 exercício de código
Ao final desta lição, você saberá
  • Usar subqueries e CTEs para compor análises em múltiplos passos.

Subquery é uma consulta dentro de outra consulta. CTE (Common Table Expression) nomeia um resultado intermediário com WITH, facilitando leitura e manutenção de consultas maiores.

SQL example
1WITH customer_totals AS (
2  SELECT customer_id, SUM(total) AS total_spent
3  FROM orders
4  GROUP BY customer_id
5)
6SELECT customer_id, total_spent
7FROM customer_totals
8WHERE total_spent >= 100
9ORDER BY total_spent DESC;

CTEs ajudam a separar cálculo intermediário de filtro e ordenação finais. Comece priorizando clareza/correção e depois ajuste performance conforme necessário.

Principais conclusões

  • Usar subqueries e CTEs para compor análises em múltiplos passos.

  • 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.

Exercício 1

Encontre clientes de maior gasto com CTE

+25 XP

Retorne customer_id e total_spent para clientes com total >= 100, do maior para o menor gasto.

  • Clientes no limiar ou acima
Escolha o mecanismo de banco de dados para executar os testes.
Tabelas e registros de exemplo

Cada teste recria um banco de dados em memória no dialeto escolhido antes de executar a consulta.

sample-data.sql
CREATE TABLE orders (customer_id INTEGER, total REAL); INSERT INTO orders VALUES (1, 45), (1, 60), (2, 30), (2, 20), (3, 110);
query.sql
Carregando editor…

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…