Questão de Banco de Dados — Banco de Dados Relacionais — CESPE / CEBRASPE 2024
Banco de Dados›Banco 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;
CCerto
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.