Questão de Banco de Dados — Banco de Dados Relacionais — VUNESP 2025
Banco de Dados›Banco 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 é:
ASELECT Categoria, Count(ID)FROM ProdutoGROUP BY Categoria;
BSELECT Categoria, Sum (Categoria)FROM ProdutoGROUP BY Categoria;
CSELECT Categoria, Count (ID)FROM Produto;
DSELECT Categoria, Count (ID)FROM ProdutoGROUP BY ID;
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.