
Essa é uma das situações mais frustrantes em SQL.
Você escreve a query. Ela roda. O resultado parece ok.
Mas quando compara com outro número…
👉 não bate.
E aí começa o pior tipo de dúvida:
“Onde eu errei?”
O problema não é sintaxe
Se a query rodou, o SQL está “certo”.
O problema está em outro lugar:
👉 na lógica do que você pediu para o banco fazer.
E esse erro é mais perigoso, porque não aparece como erro.
Ele aparece como número “plausível”.
O erro mais comum: duplicação invisível
Olha esse cenário simples:
Você quer saber o faturamento por cliente.
SELECT
c.ID_CLIENTE,
SUM(i.VALOR_ITEM) AS FATURAMENTO
FROM cliente c
JOIN pedido p
ON p.ID_CLIENTE = c.ID_CLIENTE
JOIN item_pedido i
ON i.ID_PEDIDO = p.ID_PEDIDO
GROUP BY c.ID_CLIENTE;A query roda. O número sai.
Mas pode estar errado.
O que pode estar acontecendo aqui
Se cada pedido tem vários itens:
- o
JOINcomitem_pedidomultiplica as linhas - cada pedido aparece várias vezes
- o valor pode ser somado mais de uma vez (dependendo da modelagem)
👉 Resultado: faturamento inflado.
E nada no SQL acusa isso.
Outro erro comum: granularidade misturada
Você quer uma coisa…
Mas a query está fazendo outra.
Exemplo clássico:
SELECT
ID_CLIENTE,
DATA_PEDIDO,
SUM(VALOR_TOTAL) AS FATURAMENTO
FROM pedido
GROUP BY ID_CLIENTE;Aqui você está dizendo:
- “quero uma linha por cliente”
Mas inclui DATA_PEDIDO, que está em outro nível.
👉 Isso quebra a lógica.
O problema real: você não definiu o resultado antes
Antes de escrever SQL, você deveria conseguir responder:
- Cada linha representa o quê?
- O valor é agregado ou detalhado?
- Existe duplicação possível?
- Estou juntando tabelas com cardinalidade diferente?
Se isso não está claro, a query vira tentativa.
Como validar se sua query está certa
Antes de confiar no resultado, faça esse checklist:
🔎 1. Compare com uma versão simplificada
- Sem JOIN
- Sem filtro
- Só para ver se o número faz sentido
🔎 2. Conte as linhas antes e depois do JOIN
- Quantas linhas tinha antes?
- Quantas depois?
Se explodiu, algo mudou.
🔎 3. Teste com um caso pequeno
- Um cliente
- Um pedido
- Um período curto
Se você não consegue prever o resultado manualmente, não confie no SQL.
🔎 4. Pergunte o mais importante
“Esse número faz sentido?”
Se você não consegue justificar, não está pronto.
SQL profissional não é sobre “rodar”
É sobre:
- prever resultado
- entender impacto do JOIN
- controlar granularidade
- validar número
Quem não faz isso:
👉 entrega relatório errado com confiança.
E isso é pior do que erro.
O que muda quando você aprende a validar
Você passa a:
- confiar no que entrega
- identificar erro antes de alguém apontar
- entender quando algo está estranho
- parar de depender de “rodou, então tá certo”
Isso é maturidade.
Próximo passo natural
Se você quer aprender a:
- evitar erro silencioso
- validar query com segurança
- entender o que está acontecendo de verdade
🎯 A Arte da Query te coloca exatamente nesses cenários reais.
E se você quiser praticar com dados reais (onde esses erros aparecem de verdade):
0 Comentários