← Voltar para os artigos

Antes de escrever a query: como estruturar o problema

Por Fernando Nagao Douverny · 13 de agosto de 2026 · 2 min de leitura

fundamentosiniciante

Chega o pedido: “me manda os clientes que estão comprando menos”. Você abre o editor, escreve SELECT, e trava.

Não travou por falta de SQL. Travou porque o pedido ainda não é uma pergunta respondível.

Comece pelo fim: como é uma linha do resultado?

Antes de qualquer código, descreva uma linha da tabela que você quer entregar. Em voz alta, em português:

“Uma linha por cliente, com o quanto ele comprou nos últimos 30 dias e o quanto comprou nos 30 anteriores.”

Essa frase já contém quase tudo:

  • O grão — uma linha por cliente. É o que vai no GROUP BY.
  • As métricas — dois valores somados. É o que vai no SELECT.
  • O recorte — duas janelas de 30 dias. É o que vai no WHERE.

Sem essa frase, você está escrevendo query para uma tabela que ainda não existe na sua cabeça.

Depois: de onde vem cada coisa

Com a linha definida, cada pedaço vira uma pergunta de origem:

  • Quanto comprou → tabela de pedidos
  • Quem é o cliente → tabela de clientes
  • O que conta como “comprando” → pedido cancelado entra?

Repare que a terceira não tem resposta técnica. É regra de negócio, e é a que muda o número. Se você não perguntar agora, vai descobrir depois — quando alguém disser que o relatório está errado.

O grão é o que mais derruba query

Quase todo número inflado tem a mesma origem: você juntou uma tabela de grão diferente e não percebeu.

Um pedido tem vários itens. Se você junta pedidos com itens e soma o valor do pedido, cada pedido é contado uma vez por item. O total dobra, triplica, e a query não dá erro nenhum.

O teste é uma frase: “depois desse JOIN, uma linha é o quê?” Se a resposta mudou e você não queria que mudasse, o problema está ali.

Pra lembrar

A ordem que funciona:

  1. Descreva uma linha do resultado
  2. Liste de onde vem cada coluna
  3. Confirme as regras de negócio que mudam o número
  4. Aí sim escreva o SQL

Os três primeiros passos não têm código nenhum — e são onde a query é realmente resolvida. O quarto é digitação.