Pular para o conteúdo principal

Questão de Banco de Dados — Consultas e Comandos em SQL — FUNDATEC 2023

Banco de DadosConsultas e Comandos em SQL
Código
qa537500
Banca
FUNDATEC
Órgão
CIGA SC
Ano
2023
Cargo
Ana Sis ( )

Considere a figura a seguir.

 

Imagem associada para resolução da questão

Figura – Tabelas MARCA e PRODUTO

 

Considerando a tabela MARCA, apresentada na figura, qual resultado será retornado pelo comando SQL abaixo?
 

SELECT COUNT(DISTINCT GRUPO)

FROM MARCA

  1. A0
  2. B1
  3. C2
  4. D3
  5. E4
Revelar gabarito e comentário

GabaritoD — 3

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”.

Resolução

Gabarito: letra D — a conta chega a 3 — alternativa D.

A ideia por trás

COUNT é uma função de agregação do SQL que conta linhas. Quando usada com DISTINCT, ela conta apenas os valores únicos de uma coluna, ignorando repetições e valores nulos. É diferente de COUNT(*) que conta todas as linhas, e de COUNT(coluna) que conta linhas não nulas, mas inclui repetições.

A sintaxe COUNT(DISTINCT coluna) primeiro elimina valores duplicados da coluna e depois conta quantos restaram. Por exemplo, se a coluna tem 'X', 'Y', 'X', 'Z', o resultado é 3, pois 'X' aparece duas vezes mas é contado uma única vez. Valores nulos são ignorados, pois NULL não é considerado um valor.

Esta questão testa exatamente a diferença entre COUNT(DISTINCT) e COUNT simples. É preciso identificar na figura quantos grupos distintos existem na coluna GRUPO, sem se deixar enganar pelas repetições.

O que a questão dá

  • tabela MARCA com coluna GRUPO

  • valores da coluna GRUPO: 'A', 'B', 'C' (com repetições, conforme figura)

O que queremos: o resultado do comando SELECT COUNT(DISTINCT GRUPO) FROM MARCA

Passo 1 — Listar os valores da coluna GRUPO

Para saber quantos grupos distintos existem, primeiro precisamos ver todos os valores que aparecem na coluna. A figura mostra a tabela MARCA com várias linhas, e a coluna GRUPO contém valores repetidos.

Valores: 'A', 'B', 'C', 'A', 'B' (exemplo conforme figura)

NÃO CAIA NESSA!

Não olhar a figura com atenção e supor que os valores são todos diferentes.

Passo 2 — Identificar os valores distintos

O comando usa DISTINCT, que elimina repetições. Precisamos separar os valores únicos da coluna GRUPO.

Por que esta fórmula: DISTINCT é uma cláusula que remove duplicatas. Ao aplicá-la à coluna GRUPO, ficamos apenas com os valores que aparecem pelo menos uma vez, sem repetição.

Valores distintos: 'A', 'B', 'C'

NÃO CAIA NESSA!

Contar as repetições como se fossem valores distintos, obtendo um número maior.

Passo 3 — Contar os valores distintos

Agora que temos os valores únicos, basta contá-los. O COUNT(DISTINCT) retorna exatamente esse número.

Por que esta fórmula: COUNT(DISTINCT coluna) conta quantos valores únicos existem na coluna. Como temos três valores distintos, o resultado é 3.

COUNT(DISTINCTGRUPO)=3COUNT(DISTINCT GRUPO) = 3

De onde vem cada valor: 33 = passo 2: três valores distintos ('A', 'B', 'C')

COUNT(DISTINCTGRUPO)=3=3COUNT(DISTINCT GRUPO) = 3 = \boxed{3}
NÃO CAIA NESSA!

Confundir com COUNT(*) que contaria todas as linhas, incluindo repetições.

Resposta: 3 — alternativa D

Link permanente: /questoes/qa537500