Pular para o conteúdo principal

Questão de Banco de Dados — Geral — VUNESP 2026

Banco de DadosGeral
Código
vu169317
Banca
VUNESP
Órgão
Rio Preto Prev
Ano
2026
Cargo
Ana Prev (RP Prev)

Considere a seguinte tabela de um banco de dados relacional: Roupa (Cod, Tipo, Valor), bem como o seguinte comando SQL:

 

SELECT Tipo, AVG (Valor)

FROM Roupa

Instrução X;

 

O código a ser inserido na última linha do comando SQL, de forma a substituir a Instrução X, para que se obtenham os Tipos de Roupa, bem como o valor médio de cada Tipo, é:

  1. AWHERE Tipo LIKE ‘%’;
  2. BWHERE Tipo <> NULL;
  3. CGROUP IN Tipo;
  4. DWHERE Tipo CONTAINS ‘*’;
  5. EGROUP BY Tipo;
Revelar gabarito e comentário

GabaritoE — 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: agrupamento com funções de agregação

Gabarito: letra E. Para obter o valor médio de cada tipo de roupa, é necessário agrupar os registros por tipo usando a cláusula GROUP BY Tipo, que combina com a função de agregação AVG(Valor) para calcular a média por grupo. As demais alternativas apresentam sintaxe inválida ou não realizam o agrupamento necessário.

A consulta apresentada no enunciado utiliza a função de agregação AVG, que calcula a média aritmética dos valores de uma coluna numérica. No entanto, para que a média seja calculada separadamente para cada tipo de roupa, é imprescindível agrupar os registros por essa coluna. A cláusula GROUP BY é exatamente o mecanismo do SQL que divide as linhas da tabela em grupos com base nos valores de uma ou mais colunas, permitindo que as funções de agregação sejam aplicadas a cada grupo individualmente.

A sintaxe correta da consulta seria:

SELECT Tipo, AVG(Valor)
FROM Roupa
GROUP BY Tipo;

Essa consulta retorna uma linha para cada tipo de roupa distinto, com a média dos valores dos itens daquele tipo. Sem o GROUP BY, a função AVG seria aplicada a toda a tabela, retornando apenas uma linha com a média geral, o que não atende ao que o enunciado pede.

É importante destacar que a cláusula WHERE é usada para filtrar linhas antes do agrupamento, enquanto a cláusula HAVING filtra grupos após o agrupamento. Nesta questão, não há necessidade de filtro, apenas de agrupamento.

A pegadinha da banca está em oferecer alternativas com sintaxe inválida ou com cláusulas que não realizam o agrupamento, como WHERE Tipo LIKE '%' (que filtra, mas não agrupa) e GROUP IN Tipo (que não existe no SQL). O candidato que não domina a sintaxe do GROUP BY pode se confundir e escolher uma opção incorreta.

  1. 1FROM Roupa
  2. 2GROUP BY Tipo
  3. 3AVG(Valor) por grupo
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

A cláusula WHERE Tipo LIKE '%' filtra as linhas da tabela, mas não agrupa os registros por tipo. O operador LIKE com o curinga % seleciona todos os valores de Tipo que contenham qualquer sequência de caracteres, ou seja, praticamente todos os registros. No entanto, sem o GROUP BY, a função AVG(Valor) seria aplicada a toda a tabela, retornando apenas uma linha com a média geral, e não a média por tipo.

Alternativa B — ❌ Incorreta

A expressão WHERE Tipo <> NULL é inválida em SQL. Para verificar se um valor é nulo, deve-se usar IS NULL ou IS NOT NULL. O operador <> (diferente) não funciona com valores nulos, pois qualquer comparação com NULL resulta em desconhecido, não em verdadeiro ou falso. Além disso, mesmo que a sintaxe estivesse correta, essa cláusula apenas filtraria linhas, sem realizar o agrupamento necessário.

Alternativa C — ❌ Incorreta

A cláusula GROUP IN Tipo não existe no SQL. A sintaxe correta para agrupamento é GROUP BY Tipo. A palavra IN é usada em outros contextos, como WHERE Tipo IN ('A', 'B'), mas não faz parte da cláusula de agrupamento. Portanto, essa alternativa apresenta um erro de sintaxe grave.

Alternativa D — ❌ Incorreta

A expressão WHERE Tipo CONTAINS '*' é inválida em SQL padrão. O operador CONTAINS não é uma cláusula SQL padrão para busca de padrões; para isso, utiliza-se o operador LIKE com curingas como % e _. Além disso, mesmo que a sintaxe fosse corrigida, essa cláusula apenas filtraria linhas, sem realizar o agrupamento necessário para calcular a média por tipo.

Alternativa E — ✅ Correta ⟵ GABARITO

A cláusula GROUP BY Tipo agrupa os registros da tabela Roupa por cada valor distinto da coluna Tipo. Com isso, a função de agregação AVG(Valor) é aplicada a cada grupo separadamente, retornando o valor médio de cada tipo de roupa. Essa é a sintaxe correta e a única que atende ao que o enunciado pede.

Gabarito: letra E

Link permanente: /questoes/vu169317