Pular para o conteúdo principal

Questão de Banco de Dados — Banco de Dados Relacionais — CESPE / CEBRASPE 2024

Banco de DadosBanco de Dados Relacionais
Código
ce167032
Banca
CESPE / CEBRASPE
Órgão
ANATEL
Ano
2024
Nível
Superior
Cargo
Especialista em Regulação de Serviços Públicos de Telecomunicações – Especialidade: Ciências de Dados
Acerca das abordagens relacional e não relacional, entre outros conceitos relacionados a banco de dados, julgue o item a seguir.Se executada, a consulta a seguir retorna a contagem de clientes com mais de 18 anos de idade que realizaram transações com valores superiores a 1.000, agrupados e ordenados de forma decrescente por idade.SELECT COUNT(c.id), c.idadeFROM cliente cWHERE c.idade > 18AND EXISTS (SELECT 1FROM transacao tWHERE t.cliente_id = c.idAND t.valor > 1000)GROUP BY c.idadeORDER BY c.idade DESC;
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

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

Banco de Dados Relacionais - Consulta SQL

Gabarito: ✅ CERTO. A consulta SQL apresentada está correta e retorna exatamente o que descreve o enunciado: a contagem de clientes com mais de 18 anos que realizaram transações de valor superior a 1.000, agrupados por idade e ordenados decrescentemente por idade.

Vamos analisar a consulta passo a passo:

SELECT COUNT(c.id), c.idade
FROM cliente c
WHERE c.idade > 18
AND EXISTS (
    SELECT 1
    FROM transacao t
    WHERE t.cliente_id = c.id
    AND t.valor > 1000
)
GROUP BY c.idade
ORDER BY c.idade DESC;
  • Filtro inicial (WHERE c.idade > 18): restringe apenas clientes maiores de 18 anos.

  • Subconsulta EXISTS: garante que o cliente tenha pelo menos uma transação com valor superior a 1000. O EXISTS retorna verdadeiro se a subconsulta encontrar ao menos uma linha.

  • GROUP BY c.idade: agrupa os resultados por idade. Como a cláusula SELECT contém c.idade (coluna do grupo) e COUNT(c.id) (função agregada), a consulta retorna uma linha para cada idade.

  • COUNT(c.id): conta quantos clientes (ids) pertencem a cada faixa etária que atenderam às condições.

  • ORDER BY c.idade DESC: ordena as idades em ordem decrescente (da maior para a menor).

Portanto, o resultado é exatamente a contagem de clientes por idade, conforme descrito. Não há nenhum erro de sintaxe ou lógica.

  1. 1Filtra clientes > 18 anos
  2. 2Subconsulta EXISTS: transações > 1000
  3. 3Agrupa por idade (GROUP BY)
  4. 4Conta clientes por grupo (COUNT)
  5. 5Ordena decrescente por idade
LEVEL · soulevel.com.br

CERTO.

Link permanente: /questoes/ce167032