
Você já se deparou com uma query SQL e ficou na dúvida:
“Será que isso aqui vai funcionar?” “Ou tem algum erro escondido que só aparece na hora de executar?”
Saber identificar erros sem nem rodar a consulta é uma habilidade valiosa. Neste artigo, você será desafiado a analisar uma query e responder: Ela está correta ou vai dar erro? E por quê?
Vamos testar seu olhar técnico e, de quebra, revisar um ponto fundamental de lógica em SQL.
O Desafio: Analise Esta Query
SELECT c.ID_CLIENTE, c.NOME, COUNT(p.ID_PEDIDO) AS TOTAL_PEDIDOS
FROM cliente c
JOIN pedido p ON c.ID_CLIENTE = p.ID_CLIENTE
WHERE p.STATUS = 'confirmado'
GROUP BY c.NOME;
Aparentemente, tudo certo… mas está mesmo?
Vamos analisar:
🔹 SELECT
Seleciona três colunas:
c.ID_CLIENTE
c.NOME
COUNT(p.ID_PEDIDO)
🔹 JOIN
Junta as tabelas cliente
e pedido
pela chave ID_CLIENTE
.
🔹 WHERE
Filtra os pedidos com status 'confirmado'
.
🔹 GROUP BY
Agrupa apenas por c.NOME
.
A Query Vai Funcionar? ❌ Não. Ela Vai Dar Erro.
Por quê?
Porque ela seleciona c.ID_CLIENTE
sem incluir essa coluna no GROUP BY
ou aplicar uma função agregada.
Em SQL padrão (e especialmente em bancos como PostgreSQL e SQL Server), toda coluna no SELECT precisa estar:
- no
GROUP BY
, ou - envolvida por uma função agregada (
COUNT
,SUM
,MAX
, etc.)
Neste caso, o GROUP BY c.NOME
está correto só para c.NOME
, mas não cobre c.ID_CLIENTE
.
✅ Como Corrigir a Query?
✔️ Opção 1 – Adicionar a coluna ao GROUP BY
SELECT c.ID_CLIENTE, c.NOME, COUNT(p.ID_PEDIDO) AS TOTAL_PEDIDOS
FROM cliente c
JOIN pedido p ON c.ID_CLIENTE = p.ID_CLIENTE
WHERE p.STATUS = 'confirmado'
GROUP BY c.ID_CLIENTE, c.NOME;
✔️ Opção 2 – Agregar ou remover a coluna (caso não seja necessária)
Se não quiser agrupar por ID, remova do SELECT ou use alguma função.
O Que Aprender Com Isso?
- Não basta olhar se os comandos estão certos. Você precisa entender a lógica do agrupamento.
- Saber onde o erro acontece sem executar a query é sinal de maturidade técnica.
- Esses detalhes evitam bugs silenciosos ou falhas em relatórios.
Conclusão
Essa query ensina uma lição valiosa: em SQL, sintaxe correta não garante execução bem-sucedida. Você precisa alinhar SELECT, GROUP BY e agregações com lógica e cuidado.
- Leia sempre com atenção
- Revise agrupamentos e colunas
- Teste mentalmente antes de executar
A prática de análise como essa te torna mais preciso e confiável com dados.
Você já cometeu esse erro antes? Ou identificou logo de cara o problema nessa query? Compartilha comigo nos comentários! 📚 E se quiser treinar ainda mais esse tipo de lógica com clareza e exercícios reais, conheça o curso SQL Simplificado — feito pra quem quer dominar a leitura e a escrita de queries com segurança.
Nos vemos no próximo artigo do Blog do SQL! 🚀
0 Comentários