
Muita gente sabe interpretar uma query pronta, mas trava quando precisa escrever ou completar uma consulta do zero. Neste artigo, vamos simular um desafio comum em entrevistas e testes técnicos:
Você recebe um trecho de código incompleto e precisa completar a query para entregar o resultado correto.
Mais do que saber a sintaxe, esse exercício exige compreensão de estrutura e raciocínio com SQL.
O Desafio: Tabelas Envolvidas
🗂️ Tabela: cliente
| ID_CLIENTE | NOME | CIDADE |
|---|---|---|
| 1 | Ana Souza | São Paulo |
| 2 | Bruno Lima | Curitiba |
| 3 | Carla Torres | São Paulo |
🗂️ Tabela: pedido
| ID_PEDIDO | ID_CLIENTE | VALOR_TOTAL | DATA_PEDIDO | STATUS |
|---|---|---|---|---|
| 101 | 1 | 200.00 | 2024-04-10 | confirmado |
| 102 | 2 | 350.00 | 2024-04-11 | confirmado |
| 103 | 1 | 150.00 | 2024-04-12 | cancelado |
| 104 | 3 | 180.00 | 2024-04-14 | confirmado |
Enunciado do Desafio
Complete a query abaixo para mostrar os nomes dos clientes de São Paulo que fizeram pelo menos um pedido confirmado.
SELECT c.NOME
FROM cliente c
-- falta o JOIN e o filtroPensando em Etapas
- Você precisa juntar cliente com pedido
- Precisa filtrar por cidade = ‘São Paulo’
- Precisa garantir que o pedido esteja com STATUS = ‘confirmado’
- E pode querer eliminar duplicatas, se houver mais de um pedido por cliente
Resposta Completa da Query
SELECT DISTINCT c.NOME
FROM cliente c
JOIN pedido p ON c.ID_CLIENTE = p.ID_CLIENTE
WHERE c.CIDADE = 'São Paulo'
AND p.STATUS = 'confirmado';Explicação da Solução
JOIN→ conecta clientes com seus pedidosWHERE c.CIDADE = 'São Paulo'→ traz apenas clientes dessa cidadeAND p.STATUS = 'confirmado'→ considera apenas pedidos válidosDISTINCT→ evita repetir nomes em caso de múltiplos pedidos confirmados
Variações e Extensões
➕ Mostrar quantos pedidos confirmados cada cliente fez:
SELECT c.NOME, COUNT(*) AS TOTAL_PEDIDOS
FROM cliente c
JOIN pedido p ON c.ID_CLIENTE = p.ID_CLIENTE
WHERE c.CIDADE = 'São Paulo'
AND p.STATUS = 'confirmado'
GROUP BY c.NOME;Conclusão
Completar uma query corretamente exige mais do que lembrar comandos: Você precisa entender a lógica por trás da consulta, identificar o que está faltando e escrever com precisão.
- Conecte as tabelas corretamente
- Aplique os filtros na ordem certa
- Use
DISTINCTouGROUP BYquando o cenário pedir
Essa prática te aproxima do dia a dia real de quem trabalha com SQL.
📢 E aí? Você conseguiu completar a query sozinho? Teria feito de outro jeito? Comenta aqui! 📚 E se quiser aprender SQL com foco em lógica, estrutura e exercícios práticos, conheça o curso SQL Simplificado — feito pra você pensar, criar e dominar o SQL de verdade.
Nos vemos no próximo artigo do Blog do SQL! 🚀
0 Comentários