Considere a seguinte tabela de um banco de dados relacional implementada por meio do sistema gerenciador de bancos de dados MySQL 8.0.Cliente (CPF, Nome, Cidade, Estado)A consulta do MySQL para obter o número de cidades distintas contidas na tabela Cliente é:
ASELECT DISTINCT SUM (Cidade)FROM Cliente;
BSELECT SUM (DISTINCT Cidade)FROM Cliente;
CSELECT COUNT (DISTINCT Cidade)FROM Cliente;
DSELECT MAX (DISTINCT Cidade)FROM Cliente;
ESELECT DISTINCT COUNT (Cidade)FROM Cliente;
Revelar gabarito e comentário▾
GabaritoC — SELECT COUNT (DISTINCT Cidade)
FROM Cliente;
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”.
MySQL: Função COUNT com DISTINCT
Gabarito: letra C. A consulta correta para contar cidades distintas é SELECT COUNT(DISTINCT Cidade) FROM Cliente;, combinando a função de agregação COUNT com a palavra-chave DISTINCT para eliminar duplicatas.
A banca testa o conhecimento sobre funções de agregação (COUNT, SUM, MAX) e a cláusula DISTINCT no MySQL. O comando deve retornar o número de cidades diferentes, portanto é necessário contar apenas os valores únicos da coluna Cidade.
Alternativa
Comando SQL
Correto?
Motivo
A
SELECT DISTINCT SUM(Cidade) ...
❌
SUM soma números; Cidade é texto; DISTINCT mal posicionado.
B
SELECT SUM(DISTINCT Cidade) ...
❌
SUM não aceita texto; não conta valores.
C
SELECT COUNT(DISTINCT Cidade) ...
✅
COUNT(DISTINCT coluna) conta valores únicos não nulos.
D
SELECT MAX(DISTINCT Cidade) ...
❌
MAX retorna o maior valor, não conta.
E
SELECT DISTINCT COUNT(Cidade) ...
❌
DISTINCT fora de COUNT não elimina duplicatas na contagem.
Alternativa A — ❌ Incorreta
SELECT DISTINCT SUM (Cidade) FROM Cliente; – A função SUM é usada para somar valores numéricos, não para contar. Além disso, DISTINCT antes de SUM não faz sentido sintático: a cláusula DISTINCT se aplica ao resultado da consulta, não à função. Mesmo que houvesse correção, SUM não conta registros.
Alternativa B — ❌ Incorreta
SELECT SUM (DISTINCT Cidade) FROM Cliente; – A função SUM não aceita DISTINCT para valores não numéricos (Cidade é texto). SUM serve para adição, não contagem. Causaria erro de tipo.
Alternativa C — ✅ Correta ⟵ GABARITO
SELECT COUNT (DISTINCT Cidade) FROM Cliente; – Esta é a sintaxe correta. COUNT(DISTINCT coluna) conta o número de valores distintos (não nulos) na coluna. Aqui, conta cada cidade única uma vez.
Alternativa D — ❌ Incorreta
SELECT MAX (DISTINCT Cidade) FROM Cliente; – MAX retorna o valor máximo (ordem lexicográfica para textos) e não conta. DISTINCT é desnecessário pois MAX já considera todos os valores; com DISTINCT apenas remove duplicatas antes de achar o máximo, mas ainda assim não conta.
Alternativa E — ❌ Incorreta
SELECT DISTINCT COUNT (Cidade) FROM Cliente; – Aqui DISTINCT atua sobre o resultado da função COUNT, que sempre retorna um único valor (o número total de cidades, sem distinção). DISTINCT não tem efeito e a contagem não excluiria duplicatas. Para obter distintas, DISTINCT deve estar dentro dos parênteses de COUNT.
NÃO CAIA NESSA!
A banca explora a posição do DISTINCT. Em SQL, DISTINCT pode ser usado de duas formas: como cláusula (antes das colunas selecionadas) ou dentro de funções de agregação (COUNT(DISTINCT coluna)). A maioria das alternativas coloca DISTINCT no lugar errado, seja antes de SUM/MAX ou antes de COUNT, quando deveria estar dentro de COUNT. Memorize: COUNT(DISTINCT coluna) conta valores distintos; DISTINCT COUNT(coluna) é inócuo.
Conclusão: Apenas a alternativa C emprega corretamente a combinação de COUNT com DISTINCT, resultando na contagem de cidades distintas da tabela Cliente.