Pular para o conteúdo principal

Questão de Banco de Dados — SQL — Quadrix 2025

Banco de DadosSQL
Código
qg594440
Banca
Quadrix
Órgão
CAU-MA
Ano
2025
Nível
Médio
Cargo
Assistente de Tecnologia da Informação
A empresa ArqUrban de São Luís‑MA, especializada em projetos de arquitetura e urbanismo, mantém um banco de dados para armazenar informações sobre projetos, clientes e equipes de trabalho. Foi solicitado a um técnico de TI que analisasse algumas consultas SQL básicas feitas por um estagiário e verificar se estão corretas para obter as informações desejadas. 
Com base nessa situação hipotética, julgue o item seguinte.A consulta SELECT projeto_id, COUNT(*) FROM tarefas GROUP BY projeto_id and WHERE projeto_id > 10; retorna o número de tarefas por projeto.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Consultas SQL: GROUP BY, WHERE e a sintaxe correta

Gabarito: ERRADO (letra E). A consulta apresentada contém um erro de sintaxe: a cláusula WHERE deve vir antes do GROUP BY, e não depois. Além disso, a palavra and não é usada para conectar GROUP BY a WHERE — a ordem correta é SELECT ... FROM ... WHERE ... GROUP BY .... Portanto, a consulta não é válida e não retorna o número de tarefas por projeto.

A linguagem SQL (Structured Query Language) é a principal ferramenta para manipular dados em bancos de dados relacionais. Uma consulta SELECT é composta por cláusulas que definem quais dados serão recuperados e como serão processados. A ordem lógica de execução dessas cláusulas é fundamental para o resultado final. No comando em questão, o estagiário tentou agrupar os registros por projeto_id e, em seguida, filtrar os grupos com projeto_id > 10. No entanto, a sintaxe utilizada está incorreta.

A cláusula GROUP BY é usada para agrupar linhas que têm os mesmos valores em uma ou mais colunas, permitindo que funções de agregação como COUNT, SUM, AVG, MAX e MIN sejam aplicadas a cada grupo. A cláusula WHERE é usada para filtrar linhas antes do agrupamento, enquanto a cláusula HAVING é usada para filtrar grupos depois do agrupamento. A ordem correta das cláusulas em uma consulta SQL é: SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY. Qualquer desvio dessa ordem resulta em erro de sintaxe.

No caso apresentado, a consulta SELECT projeto_id, COUNT(*) FROM tarefas GROUP BY projeto_id and WHERE projeto_id > 10; está incorreta por dois motivos principais: (1) a cláusula WHERE está posicionada após o GROUP BY, o que viola a ordem sintática; (2) a palavra and é usada indevidamente para conectar as cláusulas, quando na verdade elas devem ser separadas por espaço. A forma correta de escrever essa consulta seria SELECT projeto_id, COUNT(*) FROM tarefas WHERE projeto_id > 10 GROUP BY projeto_id;. Essa consulta retornaria o número de tarefas por projeto, mas apenas para os projetos com projeto_id maior que 10.

A banca explora exatamente a confusão entre a ordem das cláusulas e o uso incorreto de conectivos. O candidato que conhece a sintaxe básica do SQL identifica imediatamente o erro, mas aquele que apenas decora o significado de GROUP BY e COUNT pode ser induzido a marcar como correto. É essencial dominar a ordem lógica das cláusulas e a função de cada uma para evitar esse tipo de pegadinha.

NÃO CAIA NESSA!

A banca inverte a ordem das cláusulas WHERE e GROUP BY e insere a palavra and como se fosse um conector válido. O candidato que sabe que WHERE vem antes de GROUP BY percebe o erro na hora. Lembre-se: a ordem é SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY. Com treino, você identifica essas inversões de longe 💪.

  1. 1SELECT
  2. 2FROM
  3. 3WHERE
  4. 4GROUP BY
  5. 5HAVING
  6. 6ORDER BY
LEVEL · soulevel.com.br

Item — ❌ ERRADO

A consulta SELECT projeto_id, COUNT(*) FROM tarefas GROUP BY projeto_id and WHERE projeto_id > 10; não retorna o número de tarefas por projeto, pois contém um erro de sintaxe. A cláusula WHERE deve preceder o GROUP BY, e a palavra and não é utilizada para conectar essas cláusulas. A forma correta seria SELECT projeto_id, COUNT(*) FROM tarefas WHERE projeto_id > 10 GROUP BY projeto_id;. Portanto, a afirmação está incorreta.

Gabarito: letra E (ERRADO).

Link permanente: /questoes/qg594440