Pular para o conteúdo principal

Questão de Banco de Dados — Banco de Dados Relacionais — CESPE / CEBRASPE 2024

Banco de DadosBanco de Dados Relacionais
Código
ce172196
Banca
CESPE / CEBRASPE
Órgão
CODEVASF
Ano
2024
Nível
Superior
Cargo
Analista em Desenvolvimento Regional - Área: Tecnologia da Informação
Uma consulta para mostrar o total de compras de um cliente, por produto, em determinado período, éSELECT c.Nome, sum(cp.Quantidade_Comprada)total_comprasFROM Compras cpJOIN Clientes c ON cp.ID_Cliente = c.ID_ClienteWHERE cp.ID_Produto = c. ID_Produto;
  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”.

Consulta SQL para total de compras por cliente e produto

ERRADO. A consulta apresentada contém erros graves de sintaxe e lógica que a tornam incapaz de produzir o resultado desejado: (1) a condição WHERE cp.ID_Produto = c.ID_Produto é semanticamente inválida, pois a tabela Clientes não possui o atributo ID_Produto — isso geraria um erro de referência a coluna inexistente; (2) falta a cláusula GROUP BY c.Nome, cp.ID_Produto (ou similar) para que a função de agregação SUM seja aplicada por cliente e por produto; (3) não há filtro de período (WHERE cp.Data >= ... AND cp.Data <= ...), requisito explícito no enunciado. Portanto, a consulta está incorreta.

A banca testa conhecimentos básicos de SQL: junção de tabelas (JOIN), agregação com GROUP BY e filtros temporais. A consulta correta exigiria, por exemplo:

SELECT c.Nome, cp.ID_Produto, SUM(cp.Quantidade_Comprada) AS total_compras
FROM Compras cp
JOIN Clientes c ON cp.ID_Cliente = c.ID_Cliente
WHERE cp.Data BETWEEN 'inicio' AND 'fim'
GROUP BY c.Nome, cp.ID_Produto;

Dessa forma, o item é classificado como Errado.

  1. 1WHERE com coluna inexistente
  2. 2Falta GROUP BY
  3. 3Falta filtro de período
LEVEL · soulevel.com.br
NÃO CAIA NESSA!

A banca insere uma condição WHERE que referencia uma coluna inexistente em Clientes (c.ID_Produto). O candidato pode não perceber que essa coluna não existe e considerar a consulta apenas incompleta, quando na verdade ela contém um erro de referência. Além disso, a ausência de GROUP BY e de filtro de período são outros problemas que tornam a consulta inválida.

Link permanente: /questoes/ce172196