Pular para o conteúdo principal

Questão de Banco de Dados — Banco de Dados Relacionais — VUNESP 2025

Banco de DadosBanco de Dados Relacionais
Código
vu094476
Banca
VUNESP
Órgão
MPE-SP
Ano
2025
Nível
Superior
Cargo
Analista Técnico Científico - Especialidade: Engenheiro da Computação
Considere a seguinte tabela de um banco de dados relacional:Produto (ID, Artigo, Categoria, Quantidade)A consulta expressa por meio da linguagem de consulta estruturada (SQL) para se obter a relação de categorias e o número de registros existentes para cada categoria é:
  1. ASELECT Categoria, Count(ID)FROM ProdutoGROUP BY Categoria;
  2. BSELECT Categoria, Sum (Categoria)FROM ProdutoGROUP BY Categoria;
  3. CSELECT Categoria, Count (ID)FROM Produto;
  4. DSELECT Categoria, Count (ID)FROM ProdutoGROUP BY ID;
  5. ESELECT Categoria, Sum (Categoria)FROM Produto;
Revelar gabarito e comentário

GabaritoA — SELECT Categoria, Count(ID) FROM Produto GROUP BY Categoria;

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”.

SQL: Agrupamento com GROUP BY e COUNT

Gabarito: letra A. Para obter o número de registros por categoria, é necessário agrupar as linhas pela coluna Categoria e contar os registros de cada grupo. A cláusula GROUP BY seguida da função agregada Count é a construção correta. A alternativa A faz exatamente isso: SELECT Categoria, Count(ID) FROM Produto GROUP BY Categoria;.

A banca testa o conhecimento da sintaxe correta de agrupamento e funções agregadas em SQL. O comando COUNT conta linhas (ou valores não nulos de uma coluna), e GROUP BY particiona a tabela em grupos conforme o valor da coluna especificada.

Alternativa A — ✅ Correta ⟵ GABARITO

A consulta seleciona a coluna Categoria e, para cada categoria, conta o número de ocorrências usando Count(ID). O GROUP BY Categoria garante que o COUNT seja aplicado a cada grupo distinto. Resultado: uma lista de categorias com a quantidade de produtos de cada uma.

Alternativa B — ❌ Incorreta

SELECT Categoria, Sum(Categoria) FROM Produto GROUP BY Categoria;SUM é uma função de agregação para valores numéricos. Aplicar SUM a uma coluna de texto (Categoria) não faz sentido e causará erro ou comportamento indefinido. Além disso, mesmo se Categoria fosse numérica, somar os valores não produziria a quantidade de registros.

Alternativa C — ❌ Incorreta

SELECT Categoria, Count(ID) FROM Produto; — Falta a cláusula GROUP BY. Sem ela, o Count(ID) conta o total de registros da tabela inteira, e a coluna Categoria não agrupada será tratada como um único valor (provocando erro na maioria dos SGBDs, ou retornando apenas uma linha com uma categoria qualquer).

Alternativa D — ❌ Incorreta

SELECT Categoria, Count(ID) FROM Produto GROUP BY ID; — O agrupamento é feito por ID, e não por Categoria. Isso geraria um grupo para cada ID (que é, presumivelmente, único), de modo que cada grupo teria uma contagem de 1. Não produz o resultado desejado de agrupar por categoria.

Alternativa E — ❌ Incorreta

SELECT Categoria, Sum(Categoria) FROM Produto; — Mesmo problema da alternativa B (uso indevido de SUM em texto) e ausência de GROUP BY. A consulta tentaria somar valores de texto e retornaria apenas uma linha, o que não corresponde à solicitação.

PEGA ESSA DICA!

Lembre-se: quando a pergunta pede "número de registros para cada [categoria]", pense em GROUP BY [categoria] e COUNT(*) ou COUNT(coluna). Confira sempre se a cláusula GROUP BY está presente e se a função de agregação correta (COUNT para contagem, SUM para soma, etc.) foi usada.

Gabarito: letra A.

Link permanente: /questoes/vu094476