Pular para o conteúdo principal

Questão de Banco de Dados — SQL — VUNESP 2023

Banco de DadosSQL
Código
vu073332
Banca
VUNESP
Órgão
DPE-SP
Ano
2023
Nível
Superior
Cargo
Agente de Defensoria - Analista Desenvolvedor
Considere a seguinte tabela de um banco de dados relacional.Estoque (ID, Tipo, Item, Qtdade)O comando SQL para obter o Tipo e a Quantidade do estoque, agrupado por Tipo, contido na tabela é:
  1. ASELECT Tipo, COUNT (Qtdade)FROM Estoque;
  2. BSELECT Tipo, SUM (Qtdade)FROM Estoque;
  3. CSELECT Tipo, QtdadeFROM EstoqueGROUP BY COUNT(Tipo);
  4. DSELECT Tipo, QtdadeFROM EstoqueGROUP BY SUM(Tipo);
  5. ESELECT Tipo, SUM (Qtdade)FROM EstoqueGROUP BY (Tipo);
Revelar gabarito e comentário

GabaritoE — SELECT Tipo, SUM (Qtdade) FROM Estoque GROUP BY (Tipo);

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: GROUP BY e funções de agregação

Gabarito: letra E. Para obter o Tipo e a soma das quantidades agrupadas por Tipo, o comando correto é SELECT Tipo, SUM(Qtdade) FROM Estoque GROUP BY Tipo;. A alternativa E é a única que apresenta a sintaxe válida: a cláusula GROUP BY especifica a coluna de agrupamento (Tipo) e a função de agregação SUM é aplicada sobre Qtdade. As demais alternativas ou omitem o GROUP BY ou o utilizam de forma incorreta.

A banca testa o conhecimento da sintaxe do SQL para consultas com agregação. A função SUM soma valores numéricos de um grupo, e o GROUP BY define como as linhas são agrupadas.

Alternativa A — ❌ Incorreta

SELECT Tipo, COUNT (Qtdade) FROM Estoque; — falta a cláusula GROUP BY. Sem ela, a consulta tenta retornar uma linha única com a primeira ocorrência de Tipo e a contagem total de Qtdade, o que não atende ao pedido de agrupamento por Tipo.

Alternativa B — ❌ Incorreta

SELECT Tipo, SUM (Qtdade) FROM Estoque; — mesmo erro: sem GROUP BY, a soma é calculada sobre toda a tabela, não por Tipo.

Alternativa C — ❌ Incorreta

SELECT Tipo, Qtdade FROM Estoque GROUP BY COUNT(Tipo); — a cláusula GROUP BY não pode receber uma função de agregação (COUNT). O agrupamento deve ser por colunas (ou expressões não agregadas).

Alternativa D — ❌ Incorreta

SELECT Tipo, Qtdade FROM Estoque GROUP BY SUM(Tipo); — o mesmo erro: GROUP BY com uma função de agregação (SUM). Além disso, SUM(Tipo) não faz sentido, pois Tipo é geralmente texto.

Alternativa E — ✅ Correta ⟵ GABARITO

SELECT Tipo, SUM (Qtdade) FROM Estoque GROUP BY (Tipo); — sintaxe correta: agrupa as linhas por Tipo e, para cada grupo, calcula a soma de Qtdade. Os parênteses em (Tipo) são opcionais e não alteram a semântica.

PEGA ESSA DICA!

Em consultas com agregação, toda coluna que aparece no SELECT e não é função de agregação deve estar no GROUP BY. Funções de agregação comuns: COUNT, SUM, AVG, MAX, MIN. O GROUP BY nunca recebe uma função de agregação como argumento.

Gabarito: letra E

Link permanente: /questoes/vu073332