Questão de Banco de Dados — Consultas e Comandos em SQL — VUNESP 2023
Banco de Dados›Consultas e Comandos em SQL
Código
vu195956
Banca
VUNESP
Órgão
CIJUN
Ano
2023
Cargo
Ana ( )
Considere a tabela Produto (ID, Tipo, Nome) criada pelo sistema gerenciador de banco de dados MS SQL Server 2022. O comando do T-SQL para obter o número de Tipos distintos contidos na tabela Produto é:
ASELECT DISTINCT ALL Tipo FROM Produto;
BSELECT COUNT (DISTINCT Tipo) FROM Produto;
CSELECT AMOUNT Tipo FROM Produto;
DSELECT SUM Tipo FROM Produto;
ESELECT TOTAL Tipo FROM Produto;
Revelar gabarito e comentário▾
GabaritoB — SELECT COUNT (DISTINCT Tipo)
FROM Produto;
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: contagem de valores distintos com COUNT(DISTINCT)
Gabarito: letra B. Para obter o número de Tipos distintos na tabela Produto, o comando correto é SELECT COUNT(DISTINCT Tipo) FROM Produto;, pois a função de agregação COUNT combinada com a palavra-chave DISTINCT conta apenas os valores únicos da coluna, ignorando repetições — exatamente o que o enunciado pede. As demais alternativas ou usam funções inexistentes no T-SQL (AMOUNT, TOTAL) ou sintaxe incorreta (SUM sem argumento agregável, DISTINCT ALL que é redundante e não conta).
A linguagem SQL (Structured Query Language) é o padrão para consultar e manipular bancos de dados relacionais. Dentro dela, o comando SELECT é usado para recuperar dados, e as funções de agregação (COUNT, SUM, AVG, MIN, MAX) resumem um conjunto de valores em um único resultado. A função COUNT conta o número de linhas ou valores não nulos de uma coluna. Quando usamos COUNT(DISTINCT coluna), o banco elimina os valores duplicados antes de contar, retornando quantos valores únicos existem naquela coluna.
No caso da tabela Produto (ID, Tipo, Nome), se houver, por exemplo, os Tipos 'Eletrônico', 'Eletrônico', 'Móvel', 'Papelaria', o comando SELECT COUNT(DISTINCT Tipo) FROM Produto; retornará 3, pois 'Eletrônico' aparece duas vezes, mas é contado uma única vez. Já SELECT COUNT(Tipo) FROM Produto; retornaria 4, contando todas as linhas com Tipo não nulo.
A alternativa A (SELECT DISTINCT ALL Tipo FROM Produto;) é uma pegadinha clássica: DISTINCT e ALL são opostos — DISTINCT elimina duplicatas, ALL (que é o padrão) as mantém. Usá-los juntos é sintaticamente inválido ou redundante, e além disso o comando apenas lista os Tipos, não conta quantos são. As alternativas C, D e E usam palavras que não são funções SQL (AMOUNT, TOTAL) ou usam SUM de forma incorreta, pois SUM soma valores numéricos, não conta ocorrências.
A banca VUNESP explora justamente a confusão entre listar valores distintos (SELECT DISTINCT) e contar valores distintos (COUNT(DISTINCT)). O comando que responde ao enunciado precisa retornar um número, não uma lista — por isso a letra B é a única que atende.
1COUNT() agrega valores
2DISTINCT elimina duplicatas
3COUNT(DISTINCT coluna) = únicos
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
SELECT DISTINCT ALL Tipo FROM Produto; — além de combinar palavras-chave antagônicas (DISTINCT elimina duplicatas; ALL as mantém, sendo o padrão), o comando apenas lista os Tipos distintos, não retorna a quantidade deles. Para contar, seria necessário usar COUNT.
Alternativa B — ✅ Correta ⟵ GABARITO
SELECT COUNT(DISTINCT Tipo) FROM Produto; — a função COUNT conta o número de valores não nulos, e DISTINCT garante que apenas valores únicos sejam considerados. O resultado é exatamente o número de Tipos distintos na tabela, conforme pedido.
Alternativa C — ❌ Incorreta
SELECT AMOUNT Tipo FROM Produto; — AMOUNT não é uma função SQL válida no T-SQL (nem no padrão SQL). Não existe tal comando para contar valores.
Alternativa D — ❌ Incorreta
SELECT SUM Tipo FROM Produto; — SUM é uma função de agregação que soma valores numéricos, não conta ocorrências. Além disso, a sintaxe está incorreta: falta o parêntese e a coluna a ser somada (ex.: SUM(Tipo)), e mesmo assim não contaria valores distintos.
Alternativa E — ❌ Incorreta
SELECT TOTAL Tipo FROM Produto; — TOTAL não é uma função SQL padrão nem do T-SQL. Não existe comando TOTAL para contagem.
PEGA ESSA DICA!
Para questões de SQL que pedem "número de valores distintos", lembre-se do padrão COUNT(DISTINCT coluna). Se a alternativa usar SELECT DISTINCT coluna, ela está apenas listando, não contando. E desconfie de funções inventadas como AMOUNT ou TOTAL — elas não existem no SQL padrão.